GVKun编程网logo

Chrome浏览器通过Pythonselenium自动更新时如何使用特定版本的ChromeDriver(chromedriver python)

11

对于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)

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

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

案例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 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自动化详细教程

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浏览器进行网页操作。

⚠️ 注意事项:

  1. 版本匹配: 确保Chrome和Chromedriver版本匹配,不同版本的浏览器和驱动可能会导致兼容性问题。
  2. 权限问题: 如果遇到权限问题,检查文件路径和权限设置,确保chromedriver文件有执行权限。

通过严谨的安装和配置,您将能够高效地进行Selenium自动化测试。

Chrome浏览器通过Python硒自动更新时如何使用特定版本的ChromeDriver

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自动更新时如何使用特定版本的ChromeDriverchromedriver python的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于3-Python爬虫-动态HTML/Selenium+PhantomJS/chrome无头浏览器-chromedriver、centos7.4 64位安装 google-chrome 与 chromedriver 运行 Python selenium 项目、Centos7安装chrome+chromedriver以便实现selenium自动化详细教程、Chrome浏览器通过Python硒自动更新时如何使用特定版本的ChromeDriver的相关信息,请在本站寻找。

本文标签: