【发布时间】:2019-06-29 05:38:21
【问题描述】:
我正在使用 Java 的 Selenium WebDriver。 我有一个文本区域,我想清除默认内容并在其中输入新内容。功能是这样的,如果我从 textarea 中清除文本并点击 Tab 按钮,那么默认文本将自动填充。 下面是textarea的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 在模糊事件时重新填充文本框。
编辑:我使用了显式等待,条件是元素可点击。
【问题讨论】:
-
如果textarea没有被清空,你有什么异常吗?还是您的代码覆盖了默认内容?如果页面正在加载,您总是需要等待,例如to 元素是可点击的,参见 org.openqa.selenium.support.ui.ExpectedConditions
标签: java selenium-webdriver xpath css-selectors webdriverwait