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

时间:2018-06-06 06:36:52

标签: python-3.x selenium automated-tests

我有一个基本上使用动作链触发浏览器快捷方式的代码。我正在使用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 个答案:

答案 0 :(得分:0)

如果浏览器窗口最小化,

ActionChains将无效。作为一种解决方法,您可以在执行Action链之前调用driver.maximize()以将键盘快捷方式发送到窗口。

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