【问题标题】:keystrokes with Google Chrome/Firefox and Selenium not working in Python使用 Google Chrome/Firefox 和 Selenium 的击键在 Python 中不起作用
【发布时间】:2017-06-20 22:33:00
【问题描述】:

运行以下命令:

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尤其是后者)?

【问题讨论】:

    标签: python google-chrome selenium firefox keystroke


    【解决方案1】:

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

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

    【讨论】:

    • 这不起作用,无论是模拟Ctrl+S(如您的解决方案那样)或Ctrl+T
    猜你喜欢
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2014-02-11
    • 1970-01-01
    • 2020-09-16
    • 2020-04-09
    • 2014-08-31
    相关资源
    最近更新 更多