对于Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解chromedriverpython
对于Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解chromedriver python,并且为您提供关于3-Python爬虫-动态HTML/Selenium+PhantomJS/chrome无头浏览器-chromedriver、centos7.4 64位安装 google-chrome 与 chromedriver 运行 Python selenium 项目、Centos7安装chrome+chromedriver以便实现selenium自动化详细教程、Chrome浏览器通过Python硒自动更新时如何使用特定版本的ChromeDriver的宝贵知识。
本文目录一览:- Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver(chromedriver python)
- 3-Python爬虫-动态HTML/Selenium+PhantomJS/chrome无头浏览器-chromedriver
- centos7.4 64位安装 google-chrome 与 chromedriver 运行 Python selenium 项目
- Centos7安装chrome+chromedriver以便实现selenium自动化详细教程
- Chrome浏览器通过Python硒自动更新时如何使用特定版本的ChromeDriver
Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver(chromedriver python)
我是Selenium的新手,现在可以将selenium与Chromedriver一起使用以进行基本的自动测试,代码可以正常工作,但问题是Chrome浏览器始终在后端自动更新,并且代码始终在Chrome更新后无法运行。我知道我需要下载新的chromedriver来解决此问题,但是我想知道是否有任何方法可以在不禁用chromebrowser更新的情况下解决此问题?tks。
我正在使用Windows 10 / Chrome版本67 / Python 3.6.4 / Selenium 3.12.0
答案1
小编典典否 ,除了更新 ChromeDriver 二进制版本外,没有其他选择,而 Chrome浏览器 会不断自动更新。
原因
在添加,修改和删除现有功能后,会释放每个 Chrome浏览器 。为了符合当前的 浏览器功能 集, Chrome团队 会不时发布兼容的
ChromeDriver 二进制文件。这些 ChromeDriver 二进制文件能够与 Chrome浏览器 进行交互。某些版本的
ChromeDriver 二进制文件支持特定范围的 Chrome浏览器 版本(某些是最新版本),如下所示:
ChromeDriver v 84.0.4147.30 (2020-05-28)
Supports Chrome version 84
ChromeDriver v 83.0.4103.39 (2020-05-05)
Supports Chrome version 83
ChromeDriver v 82 被 故意 跳过。
ChromeDriver v 81.0.4044.138 (2020-05-05)
Supports Chrome version 81
ChromeDriver v 80.0.3987.106 (2020-02-13)
Supports Chrome version 80
ChromeDriver v 79.0.3945.36 (2019-11-18)
Supports Chrome version 79
ChromeDriver v 78.0.3904.70 (2019-10-21)
Supports Chrome version 78
ChromeDriver v 77.0.3865.40 (2019-08-20)
Supports Chrome version 77
ChromeDriver v 76.0.3809.126 (2019-08-20)
Supports Chrome version 76
ChromeDriver v 75.0.3770.8 (2019-04-29)
Supports Chrome version 75
ChromeDriver v 74.0.3729.6 (2019-03-14)
Supports Chrome version 74
ChromeDriver v 73.0.3683.68 (2019-03-06)
Supports Chrome version 73
ChromeDriver v 2.46 (2019-02-01)
Supports Chrome v71-73
ChromeDriver v 2.45 (2018-12-10)
Supports Chrome v70-72
ChromeDriver v 2.44 (2018-11-19)
Supports Chrome v69-71
ChromeDriver v 2.43 (2018-10-16)
Supports Chrome v69-71
ChromeDriver v 2.42 (2018-09-13)
Supports Chrome v68-70
ChromeDriver v 2.41 (2018-07-27)
Supports Chrome v67-69
ChromeDriver v 2.40 (2018-06-07 )
Supports Chrome v66-68
ChromeDriver v 2.39 (2018-05-30)
Supports Chrome v66-68
ChromeDriver v 2.38 (2018-04-17 )
Supports Chrome v65-67
ChromeDriver v 2.37 (2018-03-16 )
Supports Chrome v64-66
ChromeDriver v 2.36 (2018-03-02 )
Supports Chrome v63-65
ChromeDriver v 2.35 (2018-01-10 )
Supports Chrome v62-64
ChromeDriver v 2.34 (2017-12-10 )
Supports Chrome v61-63
ChromeDriver v 2.33 (2017-10-03)
Supports Chrome v60-62
ChromeDriver v 2.32 (2017-08-30)
Supports Chrome v59-61
ChromeDriver v 2.31 (2017-07-21)
Supports Chrome v58-60
ChromeDriver v 2.30 (2017-06-07)
Supports Chrome v58-60
ChromeDriver v 2.29 (2017-04-04)
Supports Chrome v56-58
结论
要使脚本/程序与更新的 Chrome浏览器 保持交互,您必须根据 兼容性将ChromeDriver 二进制版本与 Chrome浏览器 保持同步。
3-Python爬虫-动态HTML/Selenium+PhantomJS/chrome无头浏览器-chromedriver
动态HTML
爬虫跟反爬虫
动态HTML介绍
- JavaScrapt
- jQuery
- Ajax
- DHTML
- Python采集动态数据
- 从Javascript代码入手采集
- Python第三方库运行JavaScript,直接采集你在浏览器看到的页面
Selenium + PhantomJS
- Selenium: web自动化测试工具
- 自动加载页面
- 获取数据
- 截屏
- 安装: pip install selenium==2.48.0
- 官网: http://selenium-python.readthedocs.io/index.html
- PhantomJS(幽灵)
- 基于Webkit 的无界面的浏览器
- 官网: http://phantomjs.org/download.html
- Selenium 库有有一个WebDriver的API
- WebDriver可以跟页面上的元素进行各种交互,用它可以来进行爬取
- 案例 v36
- chrome + chromedriver
- 下载安装chrome: 下载+安装
- 下载安装chromedriver:
- Selenium操作主要分两大类:
- 得到UI元素
- find_element_by_id
- find_elements_by_name
- find_elements_by_xpath
- find_elements_by_link_text
- find_elements_by_partial_link_text
- find_elements_by_tag_name
- find_elements_by_class_name
- find_elements_by_css_selector
- 基于UI元素操作的模拟
- 单击
- 右键
- 拖拽
- 输入
- 可以通过导入ActionsChains类来做到
- 案例37
- 得到UI元素
案例v36
''''''
通过webdriver操作进行查找1
''''''
from selenium import webdriver
import time
# 通过Keys模拟键盘
from selenium.webdriver.common.keys import Keys
# 操作哪个浏览器就对哪个浏览器建一个实例
# 自动按照环境变量查找相应的浏览器
driver = webdriver.PhantomJS()
# 如果浏览器没有在相应环境变量中,需要指定浏览器位置
driver.get("http://www.baidu.com")
# 通过函数查找title标签
print("Title: {0}".format(driver.title))
案例v37
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
# 可能需要手动添加路径
driver = webdriver.Chrome()
url = "http://www.baidu.com"
driver.get(url)
text = driver.find_element_by_id(''wrapper'').text
print(text)
print(driver.title)
# 得到页面的快照
driver.save_screenshot(''index.png'')
# id="kw" 的是百度的输入框,我们得到输入框的ui元素后直接输入“大熊猫"
driver.find_element_by_id(''kw'').send_keys(u"大熊猫")
# id="su"是百度搜索的按钮,click模拟点击
driver.find_element_by_id(''su'').click()
time.sleep(5)
driver.save_screenshot("daxiongmao.png")
#获取当前页面的cookie
print(driver.get_cookies())
# 模拟输入两个按键 ctrl+ a
driver.find_element_by_id(''kw'').send_keys(Keys.CONTROL, ''a'')
#ctr+x 是剪切快捷键
driver.find_element_by_id(''kw'').send_keys(Keys.CONTROL, ''x'')
driver.find_element_by_id(''kw'').send_keys(u''航空母舰'')
driver.save_screenshot(''hangmu.png'')
driver.find_element_by_id(''su'').send_keys(Keys.RETURN)
time.sleep(5)
driver.save_screenshot(''hangmu2.png'')
# 清空输入框 , clear
driver.find_element_by_id(''kw'').clear()
driver.save_screenshot(''clear.png'')
# 关闭浏览器
driver.quit()
selenium自动化测试 工具:
-用selenium登录的时候,先要get到页面; -get到页面之后就可以准备输入了, -selenium可以模拟输入; -selenium调没有界面的chrome或者PhantomJS -保存快照,手动输入,对静态验证码的一大杀手。
centos7.4 64位安装 google-chrome 与 chromedriver 运行 Python selenium 项目
centos7.4 实例
利用 yum 命令安装 google-chrome 超级简单(安装最新版):
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
chromedriver 也下载最新版就好,和Mac 版本一样,我依旧选择这个最新版本:
http://chromedriver.storage.googleapis.com/index.html?path=70.0.3538.16/
Python3.7 之前安装过:
Centos7 环境下 Python2.7 换成 Python3.7 运行 scrapy 应用所遇到的问题记录
然后配置一下,就能跑起来 selenium 项目了,当然该 pip install xxx 安装模块就缺什么安装什么了
# 设置 webdriver 参数
options = webdriver.ChromeOptions()
# 设置谷歌浏览器的一些选项
# proxy 代理 options 选项
options.add_argument(r''--proxy--server=http:\\'' + ip)
uas = get_uas()
# 设置user-agent
options.add_argument(''user-agent='' + choice(uas))
# 以 headless 方案运行
options.add_argument(''--headless'')
options.add_argument(''--no-sandbox'')
# options.add_argument(''--disable-dev-shm-usage'')
# 禁用图片访问
# prefs = {"profile.managed_default_content_settings.images": 2}
# options.add_experimental_option("prefs", prefs)
如果不配置 # 以 headless 方案运行
会抛出下面异常
[root@iZwz9117d4ssv2v5oe81m3Z selenium_baidu]# python testRun.py
package_util 初始化
testRun.py:32: DeprecationWarning: use options instead of chrome_options
driver = webdriver.Chrome(path, chrome_options=options)
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/python/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/python/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "testRun.py", line 32, in get_url
driver = webdriver.Chrome(path, chrome_options=options)
File "/usr/python/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "/usr/python/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/python/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/python/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/python/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn''t exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
(Driver info: chromedriver=70.0.3538.16 (16ed95b41bb05e565b11fb66ac33c660b721f778),platform=Linux 3.10.0-693.2.2.el7.x86_64 x86_64)
selenium 代码正确运行:
Centos7安装chrome+chromedriver以便实现selenium自动化详细教程
在CentOS 7上安装Chrome、Chromedriver和Selenium的步骤详解
在CentOS 7系统上配置Selenium进行自动化测试需要安装Google Chrome浏览器、Chromedriver以及Selenium库。这个过程涉及到多个步骤,每一步都需要谨慎操作,以确保系统和工具能够顺利协作。以下是分步骤的详细讲解,包括每个命令的解释和作用。
步骤 1:安装Google Chrome
由于CentOS 7默认的YUM仓库中没有提供Google Chrome,所以我们首先需要添加Chrome的官方仓库,并从中获取浏览器安装包。
1.1 创建Google Chrome的YUM仓库配置文件
在终端中输入以下命令,创建一个新的YUM仓库配置文件:
sudo vi /etc/yum.repos.d/google-chrome.repo
解释:
sudo
:以管理员权限执行该命令。vi /etc/yum.repos.d/google-chrome.repo
:在/etc/yum.repos.d/
目录下创建并编辑一个名为google-chrome.repo
的文件。这个文件将用于配置Google Chrome的YUM仓库。
1.2 在文件中粘贴以下内容
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
解释:
name=google-chrome
:YUM仓库的名称。baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
:指向Google Chrome RPM包的地址,$basearch
会自动根据系统架构(如x86_64)替换。enabled=1
:启用该仓库。gpgcheck=1
:启用GPG签名检查,确保下载的软件包是由Google官方签署的。gpgkey
:指向Google的签名密钥,用于验证安装包的完整性和来源。
1.3 安装Google Chrome浏览器
使用YUM命令安装Google Chrome稳定版:
sudo yum install google-chrome-stable
解释:
yum install google-chrome-stable
:从刚刚配置的Google Chrome仓库中安装稳定版的Google Chrome。
到这里,Google Chrome应该已经成功安装在系统中。
步骤 2:安装Chromedriver
Chromedriver是Selenium用来控制Chrome浏览器的驱动程序。Chromedriver的版本需要和你安装的Chrome版本相匹配。
2.1 检查Chrome版本
首先,使用以下命令查看已安装的Google Chrome的版本号:
google-chrome --version
解释:
google-chrome --version
:显示当前安装的Google Chrome的版本号。根据这个版本,我们需要下载相应版本的Chromedriver。
2.2 下载对应版本的Chromedriver
访问Chromedriver官方网站并根据上一步获取的Chrome版本,下载相应的Chromedriver。
2.3 解压并移动Chromedriver
假设下载的Chromedriver文件保存在~/Downloads
目录下,使用以下命令解压并将其移动到系统的/usr/local/bin
目录:
unzip ~/Downloads/chromedriver_linux64.zip
sudo mv chromedriver /usr/local/bin/
解释:
unzip
:解压缩下载的chromedriver_linux64.zip
文件。sudo mv chromedriver /usr/local/bin/
:将解压得到的chromedriver
可执行文件移动到/usr/local/bin/
目录下,这个目录通常在系统的PATH
环境变量中,确保Chromedriver可以全局调用。
2.4 验证Chromedriver安装
在终端中输入以下命令,验证Chromedriver是否安装成功:
chromedriver --version
解释:
chromedriver --version
:检查已安装的Chromedriver版本。
如果正确显示Chromedriver版本信息,则说明安装成功。
步骤 3:安装Selenium
Selenium是一个用于自动化网页测试的Python库,通过它可以使用Chromedriver来控制Chrome浏览器。
3.1 安装pip
如果你的系统中尚未安装pip
(Python包管理工具),可以通过以下命令安装它:
sudo yum install python-pip
解释:
yum install python-pip
:通过YUM安装pip
工具,这样我们就可以通过pip
来安装Python库了。
3.2 安装Selenium
使用pip安装Selenium库:
pip install selenium
解释:
pip install selenium
:通过pip
安装Selenium库,使我们能够在Python脚本中使用Selenium进行自动化操作。
Selenium代码示例:启动Chrome浏览器
安装完成后,可以使用以下示例代码在Selenium中启动Chrome浏览器:
from selenium import webdriver
# 指定Chromedriver的路径
driver = webdriver.Chrome(executable_path=''/usr/local/bin/chromedriver'')
# 打开一个网站,例如Google
driver.get(''https://www.google.com'')
# 在完成操作后关闭浏览器
driver.quit()
代码解释:
- 导入Selenium库:
from selenium import webdriver
,Selenium的webdriver
模块提供了控制浏览器的接口。 - 指定Chromedriver路径:
driver = webdriver.Chrome(executable_path=''/usr/local/bin/chromedriver'')
,通过指定Chromedriver的路径,Selenium可以正确调用它来控制Chrome浏览器。 - 打开网页:
driver.get(''https://www.google.com'')
,使用Selenium打开指定的网址,这里以Google为例。 - 关闭浏览器:
driver.quit()
,完成操作后关闭浏览器,释放资源。
总结
步骤 | 说明 |
---|---|
1. 安装Chrome | 添加Google Chrome仓库,使用YUM命令安装稳定版Chrome浏览器。 |
2. 安装Chromedriver | 下载与Chrome版本相匹配的Chromedriver,将其解压并移动到/usr/local/bin 目录。 |
3. 安装Selenium | 使用pip 安装Selenium库,以便在Python中使用。 |
4. 编写Selenium脚本 | 通过Selenium启动Chrome浏览器,并执行自动化操作。 |
以上步骤涵盖了从环境配置到Selenium代码的完整过程。通过这些步骤,您可以在CentOS 7系统上顺利完成Selenium自动化测试环境的搭建。
思维导图
- Selenium自动化配置流程
- 安装Chrome
- 添加Google Chrome仓库
- 安装Chrome浏览器
- 安装Chromedriver
- 检查Chrome版本
- 下载对应版本Chromedriver
- 解压并移动到系统目录
- 安装Selenium
- 安装pip
- 安装Selenium库
- 编写Selenium代码
- 导入库
- 启动Chrome
- 打开网页
- 关闭浏览器
通过上述流程,您可以在CentOS 7上成功安装和配置Selenium自动化测试环境,并且能够控制Chrome浏览器进行网页操作。
⚠️ 注意事项:
- 版本匹配: 确保Chrome和Chromedriver版本匹配,不同版本的浏览器和驱动可能会导致兼容性问题。
- 权限问题: 如果遇到权限问题,检查文件路径和权限设置,确保
chromedriver
文件有执行权限。
通过严谨的安装和配置,您将能够高效地进行Selenium自动化测试。
Chrome浏览器通过Python硒自动更新时如何使用特定版本的ChromeDriver
我是Selenium的新用户,我现在可以将selenium与Chromedriver一起使用来进行基本的自动测试,代码可以正常工作,但是问题是Chrome浏览器始终在后端自动更新,并且代码始终在Chrome更新后无法运行。我知道我需要下载新的chromedriver来解决此问题,但是我想知道是否有任何方法可以在不禁用chromebrowser更新的情况下解决此问题?tks。
我正在使用Windows 10 / Chrome版本67 / Python 3.6.4 / Selenium 3.12.0
关于Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver和chromedriver python的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于3-Python爬虫-动态HTML/Selenium+PhantomJS/chrome无头浏览器-chromedriver、centos7.4 64位安装 google-chrome 与 chromedriver 运行 Python selenium 项目、Centos7安装chrome+chromedriver以便实现selenium自动化详细教程、Chrome浏览器通过Python硒自动更新时如何使用特定版本的ChromeDriver的相关信息,请在本站寻找。
本文标签: