【问题标题】:How to press Ctrl+A to select all content in a page by Selenium WebDriver using Java如何通过 Selenium WebDriver 使用 Java 按 Ctrl+A 选择页面中的所有内容
【发布时间】:2012-07-19 16:42:05
【问题描述】:

我想通过使用带有 Java 的 WebDriver 从键盘上按 Ctrl+a 来选择所有内容。我写了以下代码:

Actions actionObj = new Actions(driver);
actionObj.keyDown(Keys.CONTROL)
         .sendKeys(Keys.chord("A"))
         .keyUp(Keys.CONTROL)
         .perform();

不幸的是,它不起作用。我的 WebDriver Java 代码有什么问题?

【问题讨论】:

    标签: java selenium-webdriver virtual-keyboard selectall


    【解决方案1】:

    选择整个页面:

    driver.findElement(By.xpath("//body")).sendKeys(Keys.chord(Keys.CONTROL, "a"));
    

    cssSelector 比xpath 快。所以它也可以通过使用 CSSPath 来完成。方法如下:

    driver.findElement(By.cssSelector("body")).sendKeys(Keys.chord(Keys.CONTROL, "a"));
    

    【讨论】:

    • 此解决方案不适用于我在 Linux 上的 Chrome 中。可能是什么原因?
    • 我在使用和弦时由于某种原因收到AttributeError: type object 'Keys' has no attribute 'chord' 错误。大家有什么想法吗?
    • @baltusaj 您可能使用了错误的密钥。你需要使用 org.openqa.selenium.Keys
    • Mac OS 和 Chrome 驱动程序上长期存在的问题:bugs.chromium.org/p/chromedriver/issues/detail?id=30
    • @baltoro in python 你只是send_keys(Keys.CONTROL + "a")
    【解决方案2】:

    尝试用 Ctrl+A 键和弦。下面的代码适用于我的情况:

    element.sendKeys(Keys.chord(Keys.CONTROL, "a"));
    

    【讨论】:

    • 是的,这很好用。我访问了 www.google.com 并选择了谷歌文本框的文本: driver.findElement(By.id("gbqfq")).sendKeys(Keys.chord(Keys.CONTROL, "a"));根据您的指示,它运行良好...谢谢。我想选择整个谷歌页面。我该怎么做?
    • 由于我的一些自动化测试中的错误,我偶然发现了这个问题的答案......我使用了一个 CSS 选择器,最终选择了一个不是输入字段的页面元素(例如 div)...当测试将 CTRL+A 发送到该元素时,它最终选择了整个页面。
    • 作为对上述评论的补充,Webdriver 通常会尝试以最好的方式模拟用户......当它向不是输入的元素发送 CTRL+A 时会发生什么如果我们手动执行(单击页面中不是输入的任意位置并按下 CTRL+A),就会发生这种情况。
    • 非常感谢。我将 CTRL+A 发送到页面的一个 div 并选择了整个页面。我的主要目标是全选。这是很好的解决方案 Luiz
    • 我在使用和弦时由于某种原因收到AttributeError: type object 'Keys' has no attribute 'chord' 错误。大家有什么想法吗?
    【解决方案3】:

    Mac 用户应该使用 Cmnd 而不是 Control:

    element.sendKeys(Keys.chord(Keys.COMMAND, "a"));
    

    【讨论】:

      猜你喜欢
      • 2012-07-15
      • 2017-01-13
      • 2015-08-19
      • 2017-07-03
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      相关资源
      最近更新 更多