无法清除文本区域,无法使用Selenium WebDriver自动输入清晰和模糊的文本

时间:2019-02-05 11:50:53

标签: java selenium-webdriver xpath css-selectors webdriverwait

我正在使用Java使用Selenium WebDriver。 我有一个文本区域,我想清除默认内容并在其中输入新内容。这样的功能是,如果我从textarea清除文本并按Tab键,则默认文本将自动填充。 以下是textarea的HTML:

driver.findElement(By.id("CheckoutWelcomeTitle")).clear

我尝试使用:

driver.findElement(By.id("CheckoutWelcomeTitle")).sendKeys(Keys.CONTROL + "a") 
driver.findElement(By.id("CheckoutWelcomeTitle")).sendKeys(Keys.DELETE)

但这没用。 我也尝试过:

ApiController

这有时但并非总是可行。有时,它会清除数据并重新填充默认文本。

还有什么其他方法可以清除此文本区域,使其每次都能使用?

如果有帮助,开发人员可以使用JavaScript在发生模糊事件时重新填充文本框。

编辑:我已经使用了明确的等待,条件是该元素是可单击的。

2 个答案:

答案 0 :(得分:2)

使用Java脚本执行程序应该可以工作。

import matplotlib.pyplot as plt
from matplotlib import rc
rc('text', usetex=True)

plt.plot(range(5))
plt.xlabel(r'\texteuro%1.0fB')
plt.show()

答案 1 :(得分:-1)

所需元素是动态元素,因此要定位该元素,必须诱使 WebDriverWait 使元素可点击,并且您可以使用以下{{ 3}}:

  • 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();