我想:
但不知何故clear();
并未清除现有价值。它保留现有值(名字)。
有谁知道如何解决这个问题?
driver.findElement(By.id("PrimaryContact_FirstName_Value")).clear();
答案 0 :(得分:0)
在不知道网站/元素的上下文的情况下,我会尽力帮助您完成此任务。
首先让我们试一下,看看它是否清除文字:
JavascriptExecutor js =(JavascriptExecutor)driver;
WebElement element = driver.findElement(By.id("PrimaryContact_FirstName_Value"));
js.executeScript("arguments[0].value = ''", element));
修改强>
它会给你带来任何错误吗? 它看起来像这样吗?
<form name="myForm" action="/action_page.php" method="get">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br><br>
<input type="button" onclick="formSubmit()" value="Send form data!">
</form>
答案 1 :(得分:0)
正如您所提到的这是一个名字字段,您很可能在元素可以交互之前尝试与该元素进行交互。所以你需要引导 WebDriverWait 使元素可点击。
根据您尝试过的代码块,您可以使用基于xpath
的以下代码块来清除现有文本:
WebElement myElement = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='PrimaryContact_FirstName_Value']")));
myElement.click();
myElement.clear();