【问题标题】:How can I add a text in textarea form (in HTML tag) by selenium python?如何通过 selenium python 以 textarea 形式(在 HTML 标签中)添加文本?
【发布时间】:2018-03-19 21:03:58
【问题描述】:

我有这个 HTML 代码:

<form class="_b6i0l"><textarea aria-label="Add a comment…" placeholder="Add a comment…" class="_bilrf" autocomplete="off" autocorrect="off" style="height: 18px;"></textarea>
<textarea aria-label="Add a comment…" placeholder="Add a comment…" class="_bilrf" autocomplete="off" autocorrect="off" style="height: 18px;"></textarea>
</form>

我想在文件中写一段文字。但是,发生了这个错误:

selenium.common.exceptions.ElementNotInteractableException: Message: Element <textarea class="_bilrf"> is not reachable by keyboard

我发送文本的代码是:

add_comment_box= WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "textarea._bilrf")))
time.sleep(5)

add_comment_box.send_keys("nice!")

你能帮帮我吗?

【问题讨论】:

  • 表单中有 2 个文本区域吗?
  • 不,只有一个。
  • @hamed baziyad,您帖子中的 HTML 有 2 个 textarea
  • @hamed baziyad,尝试使用其他驱动程序。如果可以,那就是驱动的问题。如果不是,那么您要么选择了错误的元素,要么是时间问题,在这种情况下,您应该使用服务员等待预期的状态,或者如果无法获得状态,则无异常。
  • @hamed baziyad,通过直接设置值,您不再发出页面可能依赖的事件。因此,您不再模拟用户的输入。如果您正在抓取/自动化页面可能没问题,但如果您正在测试页面则不是。请注意,鉴于我们仍然不知道为什么该元素被 Selenium 视为不可交互元素,因此您的帖子不太可能有用。

标签: python-3.x selenium selenium-webdriver textarea sendkeys


【解决方案1】:

我们可以使用这个部分而不是 send_keys:

driver.execute_script("arguments[0].value = arguments[1]", driver.find_element_by_css_selector("textarea._bilrf"), "nice!")

【讨论】:

    猜你喜欢
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2021-10-20
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 2020-12-07
    相关资源
    最近更新 更多