【问题标题】:Selenium Key Press not working in FirefoxSelenium 按键在 Firefox 中不起作用
【发布时间】:2018-04-19 03:30:54
【问题描述】:

我正在构建一个网络爬虫包,我正在尝试使用 selenium 进行一些按键操作。但是,我发现像 Keys.SHIFTKeys.CONTROL 这样的键根本不起作用。但是如果我手动按下它们,它们就会起作用。 下面两行代码我都试过了,都不管用。

ac.key_down(Keys.LEFT_SHIFT).send_keys(Keys.F2).key_up(Keys.LEFT_SHIFT).perform()
elem1.send_keys(Keys.SHIFT+Keys.F2)

我试图在 Firefox 中打开开发者工具

【问题讨论】:

  • 提供此方案的手动步骤?
  • 您好,手动操作只需在浏览器中同时按shift和F2,就会弹出开发工具

标签: python python-2.7 selenium sendkeys


【解决方案1】:

对照您的版本(浏览器、浏览器驱动程序、硒等,在任何问题中总是明智地包含)检查此帖子https://github.com/mozilla/geckodriver/issues/665,这可能是 CONTROL 键的 geckodriver 的一个已知错误。

这篇文章包含了一个以不同方式创建和弦的变通方法,使用:

List<CharSequence> keyWithModifiers = new ArrayList<CharSequence>();
keyWithModifiers.add(Keys.CONTROL);
keyWithModifiers.add("a");
String ctrlA = Keys.chord(keyWithModifiers);
textFieldElem.sendKeys(ctrlA);

这种方法适用于我使用 Selenium 3.7.1 Java 绑定、gecko 驱动程序 0.18.0(64 位)和 Firefox 57.0.2 - 59.0

【讨论】:

  • 非常感谢。这似乎很有道理。
  • @zhiao 希望对您有所帮助。如果它对您有用,请您考虑接受这个作为答案。谢谢。
【解决方案2】:

要按 shift 和 F2 键,请使用以下代码:

driver.FindElement(By.XPath(" Xpath loaction")).SendKeys(Keys.LeftShift);
driver.FindElement(By.XPath(" Xpath loaction")).SendKeys(Keys.F2);

【讨论】:

  • 你好,我想同时按下两个键,而不是一个接一个
  • 使用这个...让我知道它是否有用::String selectAll = Keys.chord(Keys.CTRL, Keys.SHIFT); driver.findElement(By.tagName("html")).sendKeys(selectAll);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
相关资源
最近更新 更多