selenium 遇见 element not interactable

时间:2024-03-01 12:59:21

在windows环境下使用selenium能正常运行抓取内容,但在linux环境下却报错,Message: element not interactable,很多解决思路都是延迟加载等之类的,但不能完全解决问题。

当切换操作系统环境,出现Message: element not interactable错误时,优先考虑使用execute_script

比如:标签a本身就是链接,支持click事件

elements = root.find_elements(By.TAG_NAME, 'a')
for element in elements:
    driver.execute_script('arguments[0].click()', element)  # 正常
    element.click()  # linux环境下,有时候报错:element not interactable

比如:input文本框

<input placeholder="请输入用户名" type="text" id="name" class="input-name">
name = driver.find_element(By.ID, 'name')
driver.execute_script('arguments[0].click()', name)  # 正常
name.send_keys('admin')  # linux环境下,有时候报错:element not interactable