Selenium. Как открыть ссылку на новой вкладке браузера и перейти на эту вкладку?

selenium
webdriver
csharp
Теги: #<Tag:0x00007fedc751a1c8> #<Tag:0x00007fedc751a088> #<Tag:0x00007fedc7519f48>

(It Ot) #1

Код открывает ссылку на новой вкладке

Привожу фрагмент кода

et = Browser.FindElement(By.LinkText("Книги"));
et.SendKeys(OpenQA.Selenium.Keys.Control + OpenQA.Selenium.Keys.Return);

ВОПРОС
Как сделать, чтобы при открытии ссылки в новой вкладке программа ещё и переходила на эту вкладку?


(Lev Yarushin) #2

Добавить Shift )
Полагаю как-то так:

et.SendKeys(OpenQA.Selenium.Keys.Control + OpenQA.Selenium.Keys.Shift + OpenQA.Selenium.Keys.Return);

(Алеся) #3

мне помогает для Chrome:

            new Actions(Driver).SendKeys(Keys.Control + Keys.Tab).Perform();
            var mainTab = Driver.CurrentWindowHandle;

            foreach (var window in Driver.WindowHandles)
            {
                if (!window.Equals(mainTab))
                {
                    Driver.SwitchTo().Window(window);
                }
            }

(It Ot) #4

Правильно ли я понимаю, что если просто открыт браузер с двумя вкладки, то данное выражение будет имитировать нажатие Ctrl+Tab? Что в свою очередь приведёт к переключению между вкладками.
Попробовал сделать кнопку, но что-то переключение не происходит

private void button13_Click(object sender, EventArgs e)
        {
            new Actions(browser1).SendKeys(OpenQA.Selenium.Keys.Control + OpenQA.Selenium.Keys.Tab).Perform();

}


(Алеся) #5

Правильно понимаете. Это имитирует, но надо ещё и сам селениум переключить на другое окно используя switch. И тогда в живую Вы увидите переключение.


(It Ot) #6

Что-то не переключает вкладкки в браузере.
Может есть какая-нибудь особенность использования Actions?