3 回答
TA贡献1868条经验 获得超4个赞
使用 Java Script 执行器它应该可以工作。
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("document.getElementById('CheckoutWelcomeTitle').value=''");
TA贡献2019条经验 获得超9个赞
我认为值得一提的是无需自定义脚本即可工作的解决方案;考虑到驱动程序和操作系统的所有可能排列,该问题的最新解决方案是:
private fun clearField(element: WebElement) {
element.sendKeys(Keys.chord(Keys.SHIFT, Keys.ARROW_UP), Keys.DELETE)
element.sendKeys(Keys.chord(Keys.CONTROL, "a"), Keys.DELETE)
element.clear()
}
对于 clear 并不总是有效的事实,以及第一个在 mac 上工作而第二个在 windows 上工作的事实,这是一个相当多余的解决方案。
所有这三个组合也已经在带有验证和输入掩码的反应应用程序上进行了测试。
要导入的命名空间是import org.openqa.selenium.Keys.
这是一个示例代码,以避免您不应该传递WebElements的陈旧元素。
TA贡献1840条经验 获得超5个赞
所需元素是动态元素,因此要定位元素,您必须诱导WebDriverWait以使元素可点击,并且您可以使用以下任一定位器策略:
cssSelector:
WebElement myElement = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("textarea.form-control.rd-control.rd-control--textarea.empty#CheckoutWelcomeTitle")));
myElement.click();
myElement.clear();
xpath:
WebElement myElement = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//textarea[@class='form-control rd-control rd-control--textarea empty' and @id='CheckoutWelcomeTitle']")));
myElement.click();
myElement.clear();
添加回答
举报
