如何修复Selenium不清除输入中的默认文本

时间:2019-02-14 15:04:08

标签: python python-3.x selenium

我正在尝试在包含默认字符串的文本字段中输入金额。

该字段的HTML:

<div class="InputGroup">
    <span class="InputGroup-context">$</span>
    <input autocomplete="off" class="Input InputGroup-input" id="amount" name="amount" type="text" maxlength="12" value="0.00">
</div>

当尝试在字段中输入文本时,它会替换为默认文本,而不是替换默认文本。

我尝试使用amount.clear()(金额就是我所说的元素),但是在运行并发送密钥之后,它会引发以下异常:

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

从当前代码中您将看到,我也在尝试双击默认文本,但这无济于事。

这是我目前的代码:

ActionChains(driver).move_to_element(amount).click(amount).click(amount).perform()
amount.send_keys(Keys.BACKSPACE)
amount.send_keys('100')

当我期望100时,输入字段为0.00100。

1 个答案:

答案 0 :(得分:0)

某些基于JS的Web应用程序可能无法正确清除输入字段。

您可以尝试使用Actions类来单击并完全清除一个字段。例如:

elem = driver.findElement(By.id("amount"))
actions.move_to_element(elem).click().build().perform()
actions.send_keys(Keys.BACKSPACE)
       .send_keys(Keys.BACKSPACE)
       .send_keys(Keys.BACKSPACE)
       .send_keys(Keys.BACKSPACE).build().perform()