weixin_45521420 2023-02-22 11:33 采纳率: 12.5%
浏览 23

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

selenium 定位元素并点击出现错误:
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

定位button按钮
判断元素

def isxpath(element):
    try:
        WebDriverWait(driver, 10).until(
            EC._element_to_be_clickable((By.XPATH, element)))
        return True
    except:
        return False

结果返回False

这个情况下需要如何解决?

  • 写回答

1条回答 默认 最新

  • Javajishumi 2023-02-22 15:20
    关注

    出现ElementNotInteractableException异常一般有以下几种情况:

    1.元素被遮挡

    2.元素不可交互,例如隐藏元素

    3.页面还未加载完成,元素不可见

    4.需要先切换到iframe中才能操作元素

    5.需要先执行其他操作才能操作元素,例如滚动页面等

    针对这个问题,可以尝试以下解决方法:

    1.等待页面完全加载完成再进行操作,可以使用selenium中的等待方法,如WebDriverWait

    2.如果元素被遮挡或者不可见,可以先滚动页面或者调整窗口大小

    3.如果元素在iframe中,需要先切换到iframe中再进行操作

    4.尝试使用其他定位元素的方法,例如使用id、name、class等,看是否能够成功定位到元素

    5.尝试使用JavaScript的方式进行点击操作,例如使用execute_script()方法

    例如,可以尝试以下代码:

    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 等待页面完全加载完成
    WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '元素xpath')))
    
    # 滚动页面到元素位置
    target = driver.find_element_by_xpath('元素xpath')
    driver.execute_script("arguments[0].scrollIntoView();", target)
    
    # 判断元素是否可交互
    if isxpath('元素xpath'):
        # 使用ActionChains模拟鼠标点击操作
        element = driver.find_element_by_xpath('元素xpath')
        ActionChains(driver).move_to_element(element).click().perform()
    else:
        print('元素不可交互')
    
    
    

    其中isxpath()方法用于判断元素是否可交互,使用WebDriverWait等待元素出现并且可交互,如果等待超时则返回False。如果元素可交互,则使用ActionChains模拟鼠标点击操作。如果元素不可交互,则输出错误信息

    评论

报告相同问题?

问题事件

  • 修改了问题 2月22日
  • 创建了问题 2月22日

悬赏问题

  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息