我希望打开具有不同站点的多个浏览器,并浏览那些所说的浏览器。我已经编写了打开初始浏览器并自由浏览的代码。但是,当我打开第二个选项卡并命令它获得一个新站点时,它将第一个浏览器(初始Safari“选项卡”)更改为新站点。
示例缩短的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import
Keys
browser = webdriver.Safari()
browser.get('https://twitter.com')
browser.find_element_by_tag_name('body').
send_keys(Keys.Command+'t')
browser.get('https://facebook.com')
这时,“ Twitter选项卡(第一个选项卡)”更改为Facebook,而第二个选项卡(明显位于前面的选项卡)保持空缺。
如何让网络驱动程序控制第二个选项卡?
答案 0 :(得分:1)
您可以按以下方式在浏览器选项卡/窗口之间切换:
for handle in browser.window_handles:
browser.switch_to_window(handle)
答案 1 :(得分:1)
尝试等到第二个选项卡具有句柄
browser.find_element_by_tag_name('body').send_keys(Keys.Command+'t')
WebDriverWait(browser, 5).until(
lambda b: len(b.window_handles) != 1
)
# switch to second tab
browser.switch_to_window(browser.window_handles[1]) # or [-1] for latest tab
browser.get('https://facebook.com')