【问题标题】:Keyboard shortcuts do not work in Selenium, Firefox, Python键盘快捷键在 Selenium、Firefox、Python 中不起作用
【发布时间】:2021-01-09 00:05:19
【问题描述】:

无论是打开标签、保存书签、打印文件还是其他什么,Selenium 都无法注册按键。我尝试了以下方法:

1. driver.find_element_by_tag_name("body").send_keys([insert key here])
2. ActionChains(driver).send_keys([insert key here]).perform()
3. ActionChains(driver).key_down(Keys.CONTROL).send_keys([insert key here]).key_up(Keys.CONTROL).perform()

我还尝试将 driver.find_element_by_tag_name('body').click() 放在每一行前面,以强制浏览器专注于页面,但即使这样也不起作用。

提前感谢您的帮助。

【问题讨论】:

  • 他们对 DOM(网页中的处理程序)的操作非常有限。我认为其中一些快捷方式曾经在旧版本的驱动程序/浏览器中工作,但现在已经不多了。虽然仍然有效的是粘贴: element.sendKeys(Keys.CONTROL , "v");

标签: python selenium debugging firefox keyboard-shortcuts


【解决方案1】:
driver = webdriver.Firefox()
driver.get("https://www.google.com")
input= driver.find_element_by_xpath('//input[@title="Search"]')
input.send_keys("hi this is a test")
input.send_keys(Keys.CONTROL+"a")
input.send_keys(Keys.CONTROL+"x")
time.sleep(5)
actions = ActionChains(driver)
actions.key_down(Keys.CONTROL).send_keys("v").key_up(Keys.CONTROL).perform()
time.sleep(5)

此代码在 google 搜索字段中键入一些内容,全选,剪切文本并再次将其粘贴回来。

它工作正常,请添加您尝试过的代码和您正在尝试的网站

【讨论】:

  • 这不起作用。我正在使用 Tor 浏览器并想创建一个新电路 (Ctrl+Shift+L)。如果我尝试将“send_keys”发送到图像,代码会崩溃,但如果我将其发送到正文或搜索栏,则不会执行任何操作。例如:driver.get('https://duckduckgo.com/')bar = driver.find_element_by_xpath('//*[@id="search_form_input_homepage"]')bar.send_keys(Keys.CONTROL+Keys.SHIFT+"L") 什么都不做。 //*[@id="search_form_input_homepage"] 是 DuckDuckGo 的搜索栏,就像 //input[@title="Search"] 是 Google 的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 2022-12-31
  • 1970-01-01
  • 2015-04-05
  • 1970-01-01
相关资源
最近更新 更多