无法清除的textarea其自动输入文本的清晰和模糊使用硒的webdriver

问题描述 投票:1回答:2

我使用的是硒的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 selenium-webdriver xpath css-selectors webdriverwait
2个回答
2
投票

使用Java脚本执行它应该工作。

JavascriptExecutor executor = (JavascriptExecutor) driver;

executor.executeScript("document.getElementById('CheckoutWelcomeTitle').value=''");

-1
投票

所需的元件是一个动态元素,以便以找到具有诱导WebDriverWait为元素是可点击的元件并且可以使用下列的Locator Strategies

  • cssSelectorWebElement myElement = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("textarea.form-control.rd-control.rd-control--textarea.empty#CheckoutWelcomeTitle"))); myElement.click(); myElement.clear();
  • xpathWebElement 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();
© www.soinside.com 2019 - 2024. All rights reserved.