我有一个基本上使用动作链触发浏览器快捷方式的代码。我正在使用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()
答案 0 :(得分:0)
ActionChains
将无效。作为一种解决方法,您可以在执行Action链之前调用driver.maximize()
以将键盘快捷方式发送到窗口。
driver.maximize()
ActionChains(driver).key_down(Keys.CONTROL).send_keys('j').key_up(Keys.CONTROL).perform()