Python 是否可以使用webdriver/Selenium获取用户实际查看的当前选项卡
我正在尝试使用Selenium检查/监视用户使用的选项卡。但我发现驱动程序总是只监视浏览器打开后的第一个选项卡 我试着用这个Python 是否可以使用webdriver/Selenium获取用户实际查看的当前选项卡,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我正在尝试使用Selenium检查/监视用户使用的选项卡。但我发现驱动程序总是只监视浏览器打开后的第一个选项卡 我试着用这个 driver.current_window_handle 它显示了windows名称,但并不完全是用户实际使用的选项卡。它始终是第一个选项卡,除非我执行driver.swith\u to\u窗口 而且,我试着使用 handles = driver.window_handles 然后对句柄中的每个句柄执行此操作 driver.swith_to_window(handle
driver.current_window_handle
它显示了windows名称,但并不完全是用户实际使用的选项卡。它始终是第一个选项卡,除非我执行driver.swith\u to\u窗口
而且,我试着使用
handles = driver.window_handles
然后对句柄中的每个句柄执行此操作
driver.swith_to_window(handle)
但这将中断用户的操作,因为浏览器将逐个切换选项卡
是否可以通过webdriver或selenium获取当前选项卡用户实际查看的窗口句柄、标题或索引
情景:
目前我只能从tab1中获取数据。若用户查看tab2,那个么selenium什么也不做,除非我将_切换到_窗口。但我不知道用户正在查看哪一个选项卡。与其逐个切换选项卡,不如直接给出所需的选项卡编号
driver.switch_to_window(1)
//1作为选项卡id,我很好奇为什么不直接切换到选项卡,因为您可能知道id 它将比循环快得多 司机。切换到车窗(把手)是的,这是可能的 要切换窗口,请使用
。切换到.window
而不是。切换到\u 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))
或者对每个循环使用,如以下示例所示(参考您的场景):
是的,我确实想切换到用户正在使用的窗口。但是,我不知道如何从选项卡用户实际查看中获取选项卡索引或句柄。请您解释一下“如果用户查看tab1/2/”是什么意思。代码更好。是的,我确实想切换到用户正在使用的窗口。但是,我不知道如何从选项卡用户视图中获取选项卡索引或句柄。当我得到窗口句柄数组时,我不知道用户看到的是哪一个。这总是一个修复选项卡吗?如果是的话,很可能是发动机罩这个把手是固定的(我需要仔细检查一下)对不起。“修复”选项卡是什么意思?我不明白我的意思是手柄可能总是恒定的。因此,您可以始终使用同一个句柄关闭该选项卡
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)