在输入元素中设置值:
WebElement input = ...
input.sendKeys("1234989");
有时候,输入元素只会得到“ 1”,而不是“ 1234989”,这里有任何竞争条件吗?
另一种方式:
Actions actions = new Actions(driver);
actions.sendKeys(input, "1234989").build().perform();
这似乎更好。有什么区别?
答案 0 :(得分:0)
所需元素的相关HTML可以帮助我们调试为何仅用 1 而不是 1234989 填充所需元素的原因。但是,按照最佳做法,在向input
字段发送字符序列时,应始终为elementToBeClickable()
引入 WebDriverWait ,如下所示:>
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("css_input_element"))).sendKeys("1234989");
您可以在以下位置找到一些相关的讨论
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)
public Actions sendKeys(java.lang.CharSequence... keys)
将 CharSequence 发送到活动元素。同样,这与在活动元素上调用WebElement.sendKeys(CharSequence...)
有两种不同:
sendKeys(Keys.TAB)
用于切换元素应该起作用。