python系列:【python报错解决】selenium.common.exceptions.WebDriverException

333 篇文章 ¥99.90 ¥299.90




【python报错解决】selenium.common.exceptions.WebDriverException

爬虫中少不了selenium这个第三方工具,它是web自动化测试工具,调用后会直接运行浏览器,就像真的用户在操作一样。如果遇到反爬严重的网站,使用selenium可以增加爬取的成功率。

安装方法:pip安装(pip install selenium)

问题原因:没有找到合适的驱动器 或 路径设置错误

解决方法:

1、打开谷歌浏览器, 在地址栏输入 chrome://version/ 查看版本信息

在这里插入图片描述

2、选择下载对应版本的驱动, 如果没有相同型号的,可以选择临近版本。

下载地址:
http://chromedriver.storage.googleapis.c

### 问题分析 在使用 Appium 进行自动化测试时,如果在尝试设置元素的值时出现 `selenium.common.exceptions.InvalidElementStateException` 异常,并提示无法设置元素值,通常意味着当前操作的元素状态不允许进行修改操作。例如,该元素可能处于只读状态、不可编辑状态,或者尚未正确聚焦,导致无法输入内容。 此外,该异常也可能与元素本身的状态有关,例如元素被禁用(`disabled`)或不可交互,或者元素并非输入框(如 `input` 或 `textarea`),而是其他类型的控件(如 `div` 或 `span`),从而无法接受文本输入操作。 ### 可能原因与解决方法 1. **确认目标元素是否为可编辑控件** 检查目标元素是否为支持输入操作的控件,例如 `<input>`、`<textarea>` 或具有 `contenteditable` 属性的元素。如果不是,应选择正确的元素进行操作。 2. **检查元素是否被禁用或只读** 元素可能被设置为 `disabled` 或 `readonly` 属性,导致无法直接设置值。可通过 JavaScript 绕过限制,例如: ```python driver.execute_script("arguments[0].removeAttribute('readonly')", element) element.send_keys("13541386519") ``` 3. **确保元素处于可交互状态** 在进行输入操作前,应确保元素已经加载完成并处于可交互状态。可以使用显式等待确保元素可见且可编辑: ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC element = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH, "your_element_xpath")) ) element.send_keys("13541386519") ``` 4. **使用 JavaScript 设置元素值** 如果常规的 `send_keys()` 方法不起作用,可以尝试通过执行 JavaScript 脚本来直接设置元素的值: ```python driver.execute_script("document.querySelector('your_selector').value = '13541386519'") ``` 5. **确认 Appium 支持当前控件类型** 在某些 WebView 或 Hybrid 应用中,某些 HTML 控件可能未被 Appium 正确识别。可以尝试切换 `context` 到 Web 内容,确保当前处于正确的上下文环境中: ```python contexts = driver.contexts for context in contexts: if 'WEBVIEW' in context: driver.switch_to.context(context) break ``` 6. **检查 Appium 和 Chromedriver 的兼容性** 如果测试涉及 WebView 内容,确保使用的 `chromedriver` 版本与设备上 WebView 的 Chrome 内核版本兼容。可以通过设备设置或 `adb` 指令查看 WebView 版本,并下载对应的 `chromedriver`[^4]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值