ElementNotInteractableException:消息:使用 Selenium Python 将文本发送到模态对话框中的帐户名称字段时出现元素不可交互错误

ElementNotInteractableException: Message: element not interactable error sending text to Account Name field within modal dialog using Selenium Python

我想编写单击按钮然后输入帐户并提交的功能。但是程序总是在点击第一个按钮后停止,但是当我查看驱动程序时,点击按钮后的弹出窗口已经出现。 这是我的代码:

driver.implicitly_wait(10)
print("click add account")
driver.find_element(by=By.XPATH,
                    value='//*[contains(text(), "Add Account")]').click()
print("Type account...")
driver.find_element(by=By.ID, value='inp-address').send_keys(i)
time.sleep(1)
driver.execute_script("addAccount()")

这是第一个按钮的HTML

<button class="btn btn-sm btn-danger" type="button" data-bs-toggle="modal" data-bs-target="#modal-add-account">Add Account</button>

点击后弹出:

仍有错误:

帐户名称 字段在 Modal Dialog Box.


解决方案

要发送所需的文本,您需要诱导 WebDriverWait for the and you can use the following :

  • 代码块:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "inp-address"))).send_keys(i)
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC