gpt4 book ai didi

python - 如何在Python中使用selenium在不同WebDriver打开的不同chrome浏览器窗口之间切换?

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:29 24 4
gpt4 key购买 nike

我搜索了这个问题,发现了一个使用 driver.switch_to.window() 的想法,但它没有按预期工作:

from selenium import webdriver

driver1=webdriver.Chrome("D:\Python\Files\chromedriver.exe")
driver1.get('https://www.google.com')


driver2=webdriver.Chrome("D:\Python\Files\chromedriver.exe")
driver2.get('https://www.bing.com/')

driver1.switch_to.window(driver1.current_window_handle)

上面的代码将首先打开一个 chrome 窗口并转到 google,然后将打开另一个 chrome 窗口并转到 bing,然后

driver1.switch_to.window(driver1.current_window_handle)

似乎不起作用,显示 bing 的窗口仍然显示在显示 google 的窗口顶部。有人有什么想法吗?我想

driver1.switch_to.window(driver1.current_window_handle)

可能有一些BUG。

最佳答案

由于您已使用两个WebDriver实例分别作为driver1driver2来打开网址https://www.google.com (例如窗口A)和https://www.bing.com/ (例如 windowB)值得一提的是函数 switch_to.window()是一个WebDriver方法。因此,driver1 只能控制windowAdriver2 只能控制windowB

要使Selenium与任何浏览窗口交互,Selenium需要焦点。因此,要在不同的浏览窗口之间进行迭代,您可以使用JavascriptExecutor将焦点转移到不同的浏览窗口,如下所示:

  • Python:

    driver1.execute_script("window.focus();")
    driver2.execute_script("window.focus();")
  • Java:

    ((JavascriptExecutor) driver1).executeScript("window.focus();");
    ((JavascriptExecutor) driver2).executeScript("window.focus();");

关于python - 如何在Python中使用selenium在不同WebDriver打开的不同chrome浏览器窗口之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49216418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com