1

Я использую Selenium Python Bindings для автоматизации веб-браузера в Chrome. В рамках сценария автоматизации я нажимаю на ссылку, и веб-сайт открывает страницу на новой вкладке. Однако объект WebDriver в моем скрипте python все еще указывает на первую вкладку.Как переместить WebDriver на новую открытую вкладку Chrome, не зная индекса?

Я пробовал все варианты, предлагаемые на this answer, но ни один из них не был успешным.

Единственный код, который я смог попасть на работу до сих пор это:

driver.switch_to.window(driver.window_handles[1]) 

У меня есть проблема с этим состоит в том, что я боюсь, что я не могу гарантировать, что новая вкладка будет в индексе 1, и я не думаю, что могу гарантировать, что новая вкладка находится в последнем индексе. Я попытался с помощью клавиш, как это:

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB) 

Но с помощью некоторых протоколирование я увидел, что водитель был все еще указывает на первой вкладке. Есть ли способ сосредоточиться на текущей вкладке, которую показывает хром?

ответ

2

Всякий раз, когда у меня есть случаи, подобные этим я перейти к последнему оконную ручку, до сих пор он работал для меня:

driver.switch_to.window(driver.window_handles[-1]) 
+0

Я понятия не имел, -1 будет автоматически переключаться на последнюю вкладку, спасибо за это! Я попробую, но, к сожалению, веб-сайт, который я автоматизирую, предназначен для обслуживания (просто моя удача), но я дам вам знать, как это работает. – AdamMc331