我正在尝试使用 Selenium 来检查/监视用户使用的选项卡。但我发现驱动程序总是只监视浏览器打开后的第一个选项卡。我试着用这个driver.current_window_handle它显示了窗口名称,但并不完全是用户实际使用的选项卡。除非我这样做,否则它始终是第一个选项卡 driver.swith_to_window 另外,我尝试使用handles = driver.window_handles然后对句柄中的每个句柄执行此操作driver.swith_to_window(handle)但这会中断用户的操作,因为浏览器会一一切换标签页。是否可以通过 webdriver 或 selenium 获取当前选项卡用户实际查看的窗口句柄、标题或索引?场景:python打开浏览器用户打开选项卡 1、选项卡 2、选项卡 3 并访问网站用户视图 tab2selenium 从 tab2 获取数据用户视图 tab1selenium 从 tab1 获取数据用户视图 tab3selenium 从 tab3 ...等获取数据目前我只能从 tab1 获取数据。如果用户查看 tab2,除非我 switch_to_window,否则 selenium 什么也不做。但我不知道用户正在查看哪一个标签。
3 回答
慕少森
TA贡献2019条经验 获得超9个赞
是的,这是可能的。
要切换窗口,请.switch_to.window改为使用.swith_to_window:
driver.switch_to.window(driver.window_handles[1])
print(driver.current_window_handle)
[1]> 请替换为您想要的索引。
要获得标题使用:
print(driver.title)
要获取索引当前选项卡,请使用:
print(driver.window_handles.index(driver.current_window_handle))
或者for each像下面的例子一样使用循环(参考你的场景):
driver.get('https://google.com')
driver.execute_script('window.open("https://yahoo.com");')
driver.execute_script('window.open("https://gmail.com");')
for handle in driver.window_handles:
driver.switch_to.window(handle)
print(driver.window_handles.index(handle))
print(handle)
print(driver.title)
添加回答
举报
0/150
提交
取消