Python selenium.common.exceptions.WebDriverException

本文介绍了一个关于使用Selenium进行自动化测试时遇到的问题,即Chrome浏览器版本与ChromeDriver不兼容导致测试脚本无法正常运行。文章详细记录了错误信息及解决步骤,包括如何检查浏览器版本、查找匹配的驱动程序并正确安装。
部署运行你感兴趣的模型镜像

测试selenium报错

#!/usr/bin/python
# coding=utf-8
# author=He

from selenium import webdriver

browser = webdriver.Chrome()

browser.get("https://www.baidu.com")
print(browser.title)
browser.quit()

报错信息

/usr/bin/python3.5 /home/he/dev/python-test/run.py
Traceback (most recent call last):
  File "/home/he/dev/python-test/run.py", line 7, in <module>
    browser = webdriver.Chrome()
  File "/usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py", line 67, in __init__
    desired_capabilities=desired_capabilities)
  File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 91, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 173, in start_session
    'desiredCapabilities': desired_capabilities,
  File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 233, in execute
    self.error_handler.check_response(response)
  File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: session not created exception: Chrome version must be >= 58.0.3029.0
  (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 4.9.0-deepin4-amd64 x86_64)


Process finished with exit code 1

浏览器驱动不存在或者驱动不适用当前版本
解决办法:
-chrome为例:
查看当前浏览器版本
输入chrome://help/
chromium版本

查看版本对应的驱动
https://sites.google.com/a/chromium.org/chromedriver/downloads
查看版本库
https://chromedriver.storage.googleapis.com/index.html
下载对应操作系统的文件

chromedriver库

copy到he@he-PC:/usr/lib/chromium$ sudo cp ~/Desktop/chromedriver ./

再次运行

/usr/bin/python3.5 /home/he/dev/python-test/run.py
百度一下,你就知道

Process finished with exit code 0

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

在给出的引用中,涉及到 `selenium.common.exceptions.NoSuchElementException` 和 `selenium.common.exceptions.NoSuchAttributeException` 两种以 `selenium.common.exceptions.nos` 相关的异常。 ### selenium.common.exceptions.NoSuchElementException 此异常表示使用给定的搜索参数在页面上无法定位到元素。解决此问题可以从以下几个方面入手: - **等待元素加载**:页面元素可能需要一些时间来加载,使用显式等待可以确保在元素出现后再进行操作。 ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get("http://example.com") try: element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "element_id")) ) # 对元素进行操作 element.click() except Exception as e: print(f"Error: {e}") finally: driver.quit() ``` - **检查定位方式和定位表达式**:确保使用的定位方式(如 `ID`、`CLASS_NAME`、`XPATH` 等)和定位表达式是正确的。可以使用浏览器的开发者工具来验证定位表达式是否能准确找到目标元素。 - **检查元素是否在 iframe 中**:如果元素位于 iframe 中,需要先切换到该 iframe 才能定位其中的元素。 ```python # 切换到 iframe iframe = driver.find_element(By.ID, "iframe_id") driver.switch_to.frame(iframe) # 定位 iframe 中的元素 element = driver.find_element(By.ID, "element_id") # 切换回默认内容 driver.switch_to.default_content() ``` ### selenium.common.exceptions.NoSuchAttributeException 此异常表示尝试访问元素不存在的属性。解决办法是在访问元素属性之前,先检查该属性是否存在。 ```python from selenium import webdriver driver = webdriver.Chrome() driver.get("http://example.com") element = driver.find_element(By.ID, "element_id") if element.get_attribute("attribute_name"): value = element.get_attribute("attribute_name") print(value) else: print("Attribute does not exist.") driver.quit() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值