我使用的是硒的webdriver使用Java。我有一个textarea,我想清楚了默认的内容并在其中输入新的内容。功能是这样的:如果从textarea的我清晰的文本和按Tab键,则默认的文本会自动填充。以下是文字区域HTML:
<textarea autocomplete="off" class="form-control rd-control rd-control--textarea empty" cols="20" data-bind="value: offerTitle, expandedTextArea: offerTitle, valueUpdate: 'afterkeydown', customerRequiredFieldsBinding" id="CheckoutWelcomeTitle" name="CheckoutWelcomeTitle" placeholder="ex. Here comes the best offer" rows="1" type="text" data-autosize-on="true" style="overflow-y: hidden; height: 35.9792px;" onblur="setTextColorDefault(this)" oninput="setTextColor(this)">Let's bid on a discount code!</textarea>
我试着使用:
driver.findElement(By.id("CheckoutWelcomeTitle")).clear
但这并没有工作。我也试过这样:
driver.findElement(By.id("CheckoutWelcomeTitle")).sendKeys(Keys.CONTROL + "a")
driver.findElement(By.id("CheckoutWelcomeTitle")).sendKeys(Keys.DELETE)
这有时但并不总是有效。有时,它会清除数据和笔芯默认文本。
是否有其他方法可以让我的方式,它的工作每次清除该textarea的?
在情况下,如果有帮助,开发人员使用JavaScript来填充在模糊事件文本框。
编辑:我已经用明确的等待与元素的条件,可点击。
使用Java脚本执行它应该工作。
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("document.getElementById('CheckoutWelcomeTitle').value=''");
所需的元件是一个动态元素,以便以找到具有诱导WebDriverWait为元素是可点击的元件并且可以使用下列的Locator Strategies:
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();