在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