WebElement.sendKeys(CharSequence ...)通过Selenium只发送部分值

问题描述 投票:0回答:1

在input元素中设置值:

WebElement input = ...
input.sendKeys("1234989");

有时,输入元素只有“1”而不是“1234989”,这里有任何竞争条件吗?

其他方式:

Actions actions = new Actions(driver);
actions.sendKeys(input, "1234989").build().perform();

这个似乎更好。有什么不同?

google-chrome selenium-webdriver webdriver selenium-chromedriver sendkeys
1个回答
0
投票

所需元素的相关HTML将帮助我们调试为什么仅使用1而不是1234989填充所需元素。但是根据最佳实践,在将字符序列发送到input字段时,您应始终将qdxswpoi的WebDriverWait引入为如下:

elementToBeClickable()

您可以在以下网址找到几个相关的讨论:


Chrome webdriver send keys does not send '3'

sendKeys(WebElement target, java.lang.CharSequence... keys)来自sendKeys(WebElement target, java.lang.CharSequence... keys)类,相当于调用Actions。这种方法与Actions.click(element).sendKeys(keysToSend)不同。


WebElement.sendKeys(CharSequence...)

public Actions sendKeys(java.lang.CharSequence... keys)向活动元素发送CharSequence。同样,这与在两个方面调用活动元素上的public Actions sendKeys(java.lang.CharSequence... keys)不同:

  • 此调用中包含的修饰键不会被释放。
  • 没有尝试重新聚焦元素,因此用于切换元素的WebElement.sendKeys(CharSequence...)应该可以工作。

你可以在sendKeys(Keys.TAB)找到详细的讨论

© www.soinside.com 2019 - 2024. All rights reserved.