我正在使用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在发生模糊事件时重新填充文本框。
编辑:我已经使用了明确的等待,条件是该元素是可单击的。
答案 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();