据我所知,Selenium有两种打字方式:
new Actions(webDriver).sendKeys("text to send").perform();
webElement.sendKeys("text to send");
Actions
方法似乎是复制用户输入的最自然的方式,因为密钥是在浏览器需要的任何地方发送的(我相信在封面下使用了一个名为sendKeysToActiveElement的方法)。但是,许多教程指示测试人员使用WebElement
方法(这实际上是使用SafariDriver时的唯一选择),我认为它更简单。
Actions
方法实际上是用户互动的更好模拟,还是应该使用WebElement
方法?
答案 0 :(得分:4)
public Actions sendKeys(java.lang.CharSequence ... keys)
将键发送到活动元素。这与在活动元素上以两种方式调用WebElement.sendKeys(CharSequence ...)不同:
答案 1 :(得分:2)
这不会直接回答问题,但我原本认为在SendKeys
类中使用WebElement
本来会更好,因为你已经在内存中有WebElement
个对象,为什么你需要创建一个Actions
对象吗?
我一直使用WebElement.SendKeys()
方法,但我没有找到任何用途切换到使用Actions
类来发送常规字符串。
当我需要更复杂的方案时,我会使用Actions
类,例如需要按住按钮或拖动某些东西。
答案 2 :(得分:1)
两件事:
webElement.sendkeys()
,因为它更实用,更简单。