在Selenium中无法清除现有值

时间:2018-03-29 19:13:26

标签: java selenium selenium-webdriver webdriver

我想:

  • 清除文本框中的现有值(具体来说,这是名字字段)
  • 然后在文本框中保存没有任何值。

但不知何故clear();并未清除现有价值。它保留现有值(名字)

有谁知道如何解决这个问题?

driver.findElement(By.id("PrimaryContact_FirstName_Value")).clear();

2 个答案:

答案 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();