selenium - 使用 Actions.sendKeys() 还是 WebElement.sendKeys() 来模拟用户使用 Selenium WebDriver 键入是否更好?

标签 selenium selenium-webdriver browser-automation

据我所知,有两种使用 Selenium 进行输入的方法:

new Actions(webDriver).sendKeys("text to send").perform();
webElement.sendKeys("text to send");

Actions 方法似乎是复制用户键入的最自然方式,因为按键会发送到浏览器想要的任何位置(我相信正在幕后使用名为 sendKeysToActiveElement 的方法)。但是,许多教程指示测试人员使用 WebElement 方法(这实际上是使用 SafariDriver 时的唯一选择),我认为它更简单。

Actions 方法实际上可以更好地模拟用户交互,还是为了方便起见我应该使用 WebElement 方法?

最佳答案

公共(public)操作 sendKeys(java.lang.CharSequence...keys)

将键发送到事件元素。这与在事件元素上调用 WebElement.sendKeys(CharSequence...) 的不同之处有两个:

  1. 此调用中包含的修饰键不会被释放。
  2. 不会尝试重新聚焦元素 - 因此用于切换元素的 sendKeys(Keys.TAB) 应该可以工作。

更多信息可以引用此链接:https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/Actions.html#sendKeys-java.lang.CharSequence...-

关于selenium - 使用 Actions.sendKeys() 还是 WebElement.sendKeys() 来模拟用户使用 Selenium WebDriver 键入是否更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32715624/

相关文章:

java - 在一份 testNG 报告中显示多个测试套件的所有失败测试

selenium - 无法在 selenium webdriver 中启动 IE 浏览器

c# - 如何在 C# WebDriver 中获取浏览器信息?

java - Webdriver:为什么我仍然得到 'Unexpected Alert Open'?

jquery - 填充使用 Select2 创建的 HTML 输入框

selenium - href 元素的 Xpath

java - 如何在 Selenium-Java Webdriver 测试项目中指定 Java 类的执行顺序

selenium-webdriver - 如何使用Selenium WebDriver验证页面中存在的行数

javascript - 如何使用迭代点击cypress中的每种付款方式?

ruby - Watir-webdriver:Firefox 未单击正确的链接,但 IE 和 Chrome 工作正常