我正在使用 Java 的 Selenium WebDriver。 我有一个文本区域,我想清除默认内容并在其中输入新内容。功能是这样的,如果我从文本区域清除文本并点击选项卡按钮,则默认文本将自动填充。 下面是文本区域的 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)
这有时有效,但并非总是有效。有时它会清除数据并重新填充默认文本。
是否有其他方法可以每次都有效地清除此文本区域?
如果有帮助的话,开发人员已使用 JavaScript 在模糊事件上重新填充文本框。
编辑:我使用了显式等待元素的条件为可点击。
最佳答案
使用Java脚本执行器应该可以工作。
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("document.getElementById('CheckoutWelcomeTitle').value=''");
关于java - 无法使用 Selenium WebDriver 清除自动输入清晰和模糊文本的文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54533783/