Python & Selenium : Element is not currently interactable and may not be manipulated

标签 python selenium quora

我对 Selenium 不太熟悉,因此在尝试登录 Quora 网站后:

# gets email and password from json
    with open('config.json') as f:
        login_data = json.load(f)
    email = login_data['email']
    password = login_data['pass']

    email_field_xpath = "//input[@name='email']"
    password_field_xpath = "//input[@name='password']"
    login_button_xpath = "//input[@value='Login']"

    # webdriver's going to wait max 10 seconds for email's field, password field, login button to display
    email_field_element = WebDriverWait(driver, 10).until(
        lambda driver: driver.find_element_by_xpath(email_field_xpath))
    password_field_element = WebDriverWait(driver, 10).until(
        lambda driver: driver.find_element_by_xpath(password_field_xpath))

    email_field_element.clear()
    email_field_element.send_keys(email)
    password_field_element.clear()
    password_field_element.send_keys(password)

    # wait till element is visible before interaction
    login_button_element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, login_button_xpath)))
    login_button_element.click()

我遇到了这个错误:

Traceback (most recent call last): ...

File "quora.py", line 39, in log_in email_field_element.clear()

File "/home/annieshlepak/work/QuoraAutomatization/env/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py", line 92, in clear self._execute(Command.CLEAR_ELEMENT) ...

selenium.common.exceptions.InvalidElementStateException: Message: invalid element state: Element is not currently interactable and may not be manipulated

最佳答案

有两个带有 name="email" 属性的 input 元素(您可以使用 len(driver.find_elements_by_xpath(email_field_xpath)) 检查它)

尝试通过索引定位所需的(第二个)元素

driver.find_elements_by_xpath(email_field_xpath)[1].clear()

或使用更具体的XPath:

email_field_xpath = '//div[@class="form_column"]/input[@name="email"]'

关于Python & Selenium : Element is not currently interactable and may not be manipulated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44497355/

相关文章:

python - 如何使用一个热编码 csv 文件作为 GroundTruth 将图像移动到文件夹中?

python - 根据某些属性合并对象并组合(求和)某些其他属性

python - 在 Linux 上使用 Python 编写 Excel 单元格注释?

html - 如何在我的网站上添加 quora 关注按钮?

python - 如何修复解决 Homebrew 医生警告的路径

selenium - 使用 Screenplay 模式而不是 Page 对象的优点/缺点是什么?

java - 如何从自动完成文本框的自动建议中获取文本?

c# - 找不到元素

javascript - 从 Google Chrome 浏览器控制台使用所有请求立即回答 Quora 上的问题

python - 获取 Selenium Python 中 Html 按钮生成的内容