2017-06-20 29 views
1

运行不工作如下:按键与谷歌浏览器/ Firefox和硒在Python

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

# Get web driver going 
cp = webdriver.ChromeOptions() 
cp.add_argument("--browser.download.folderList=2") 
cp.add_argument("--browser.helperApps.neverAsk.saveToDisk=image/jpg") 
cp.add_argument("--browser.helperApps.neverAsk.saveToDisk=image/png") 
cp.add_argument("--browser.download.dir=~/Downloads/") 
driver = webdriver.Chrome(chrome_options=cp) 

driver.get("http://www.google.com") 
# Try to open a new tab 
driver.find_element_by_tag_name("body").send_keys(Keys.CONTROL, 't') 

这是打开一个新的标签的尝试,但代码不能正常工作。尝试使用Firefox时也是如此。对于Firefox,如果我不更改配置文件(使用等效代码),但不工作,但不适用于自定义配置文件。

我也想能够发送Ctrl+S过,但似乎涉及一个特殊字符工作没有命令(虽然我仍然可以send_keys普通文本,不涉及像Ctrl特殊键)。

我该怎么做才能发送Ctrl+TCtrl+S特别是后者)?

回答

0

您可以使用下面给出的动作链。

ActionChains(driver).key_down(Keys.CONTROL).send_keys('s').key_up(Keys.CONTROL).perform() 
+0

这不起作用,无论是模拟'Ctrl + S'(如您的解决方案)或'Ctrl + T'。 – cgmil