Google Chrome/Firefox和Selenium的击键不适用于Python [英] keystrokes with Google Chrome/Firefox and Selenium not working in 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,如果我不更改配置文件(使用等效代码),此可以起作用,但是不适用于自定义配置文件.
This was an attempt to open a new tab, but the code does not work. This is also the case when trying to use Firefox. For Firefox, this does work if I don't change the profile (using equivalent code), but does not work with a custom profile.
我也希望能够发送Ctrl+S
,但是似乎没有涉及特殊字符的命令(尽管我仍然可以send_keys
普通文本,不涉及诸如Ctrl
之类的特殊键).
I would also like to be able to send Ctrl+S
too, but it seems no commands involving a special character work (though I can still send_keys
normal text, not involving special keys like Ctrl
).
我该怎么做才能发送Ctrl+T
和Ctrl+S
(尤其是 后者)?
What can I do to be able to send Ctrl+T
and Ctrl+S
(especially the latter)?
推荐答案
您可以使用下面给出的操作链.
You can use action chain as given below.
ActionChains(driver).key_down(Keys.CONTROL).send_keys('s').key_up(Keys.CONTROL).perform()
这篇关于Google Chrome/Firefox和Selenium的击键不适用于Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!