代码之家  ›  专栏  ›  技术社区  ›  Raunak Thomas

当驱动程序失去焦点时,Actionchains执行不工作

  •  0
  • Raunak Thomas  · 技术社区  · 6 年前

    我有一段代码,基本上可以使用actionchains触发浏览器快捷方式。我正在使用Chrome驱动程序2.27,并通过Jupyter笔记本运行python 3.6(尽管这不重要)。问题是,如果代码在创建webdriver实例的同时运行,它就会工作并显示下载栏。

    相反,如果我运行代码来创建webdriver,请打开新窗口,最小化它,然后尝试运行代码来触发快捷方式,但它不起作用。我猜这与驱动程序失去焦点有关,因为我手动查看创建的新窗口。

    创建webdriver的代码

    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium import webdriver
    chromedriver= "chromedriver_v2.27.exe"
    driver = webdriver.Chrome(chromedriver)
    driver.get("https://www.google.com")  
    

    触发浏览器快捷方式的代码

    ActionChains(driver).key_down(Keys.CONTROL).send_keys('j').key_up(Keys.CONTROL).perform()
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   GPT14    6 年前

    ActionChains 如果最小化浏览器窗口,则无法工作。作为一种解决方法,您可以调用 driver.maximize() 在执行操作链之前,将键盘快捷键发送到窗口。

    driver.maximize()
    ActionChains(driver).key_down(Keys.CONTROL).send_keys('j').key_up(Keys.CONTROL).perform()