【问题标题】:Python Selenium "element not interactable" error messagePython Selenium“元素不可交互”错误消息
【发布时间】:2021-04-22 19:09:23
【问题描述】:

我是 Selenium 的新手,正在尝试自动输入数据。我试图获取 ID,然后单击文本框发送数据,但我不断收到错误消息。我也尝试了 Xpath,但它似乎不起作用。

这是我的代码。

    product = driver.find_element_by_id("(improved-inventory/js/extension-providers/ItemComboBox_0)[2]")
    product.click()
    product.send_keys("027459087093")
    product.send_keys(Keys.RETURN)

任何帮助将不胜感激。这是当前从输入类中获取 id 的 HTML im。当我调用 product.isdisplayed() 它打印错误。

<div class="dijitInline dijitTextBox dijitComboBox quickfill qfComboBox dijitValidationTextBox"
id="widget_improved-inventory/js/extension-providers/ItemComboBox_0" 
role="combobox" aria-haspopup="true" data-dojo-attach-point="_popupStateNode" widgetid="improved-inventory/js/extension-providers/ItemComboBox_0" 
aria-disabled="false" aria-owns="improved-inventory/js/extension-providers/ItemComboBox_0_popup" > == $0

<input class="dijitReset dijitInputInner" type="text" autocomplete="off" 
data-dojo-attach-point="textbox,focusNode" role ="textbox" placeholder="Enter   Text" 
tabindex="0" id="improved-inventory/js/extension-providers/ItemComboBox_0" value aria-label="Enter Text:" aria-invalid="false" aria-disabled="false">

【问题讨论】:

    标签: python selenium element


    【解决方案1】:

    尝试等待输入字段可点击:

    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    wait = WebDriverWait(driver, timeout=30)
    wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".dijitReset.dijitInputInner")))
    product = driver.find_element_by_css_selector(".dijitReset.dijitInputInner")
    product.click()
    product.send_keys("027459087093")
    product.send_keys(Keys.RETURN)
    

    另外,修复你的定位器。

    【讨论】:

    • wait.until(...) 返回与选择器匹配的 WebElement,因此您只需执行 product = wait.until(...)
    • 好的,谢谢。我知道。我只是更喜欢更明显的方式。
    • 接受/批准是解决您问题的答案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2022-06-10
    • 2019-04-19
    • 1970-01-01
    相关资源
    最近更新 更多