Javascript 不同选项卡中的Selenium操作(Python或C+;+;)

Javascript 不同选项卡中的Selenium操作(Python或C+;+;),javascript,python,c++,selenium,tabs,Javascript,Python,C++,Selenium,Tabs,我对硒有意见。 我有一个场景: 用户通过脚本打开浏览器: driver = webdriver.Firefox() driver.get ("some_startpage") 然后用户打开一个新选项卡(用户单击,这不是由selenium完成的,而是手动完成的) 我想在第二个选项卡中更改页面上的一个元素,但我的webdriver集中在第一个选项卡上 我尝试使用driver.getWindowHandles()更改webdriver焦点,但它只显示一个句柄(到主窗口),无法将上下文切换到第二个选

我对硒有意见。 我有一个场景:

  • 用户通过脚本打开浏览器:

    driver = webdriver.Firefox()
    driver.get ("some_startpage")
    
  • 然后用户打开一个新选项卡(用户单击,这不是由selenium完成的,而是手动完成的)

  • 我想在第二个选项卡中更改页面上的一个元素,但我的webdriver集中在第一个选项卡上

    我尝试使用
    driver.getWindowHandles()
    更改webdriver焦点,但它只显示一个句柄(到主窗口),无法将上下文切换到第二个选项卡

    • webdriver.title
      显示第二个选项卡的标题和
    • webdriver.current\u url
      显示第一个选项卡的url
    但这是正常的。我听说selenium不支持浏览器中的选项卡

    我的问题是:

    • 在浏览器的第二个(第三个、第四个…)选项卡上操作元素时,是否有任何变通方法(mayby js?)
    • 我不想打开新的浏览器窗口,而且人类必须手动打开选项卡,这不能通过selenium完成

    是否要使用您的代码打开一个新选项卡?否,用户亲自打开一个新选项卡。我想在新选项卡中与元素(例如通过js)集成。但是我的selenium驱动程序关注的是不同的选项卡(通过webdriver打开)。你很可能运气不好。如果用户手动打开浏览器的新实例,您是否希望驱动程序能够驱动它(提示:答案是“否”)?现在考虑一个新的手动打开的选项卡与WebDriver的一个新的浏览器实例没有区别。这样,我希望驱动程序无法识别手动打开的选项卡。也许你可以尝试类似的方法。@JimEvans但是如果有办法获得新的选项卡句柄,例如,在操作系统中浏览(枚举)打开的窗口,并将该句柄发送给driver.switchTo().window(winHandle)。