跳转到主要内容

为使用selenium构建chrome和chromedriver

项目描述

HitchChrome

如果您使用Python与selenium配合超过了一小部分,您可能遇到了以下三者之一与其他之一或多个不兼容的问题

  • 浏览器版本。
  • WebDriver版本。
  • Selenium版本。

此包是将这三个一起安装的方法,以避免首次设置Selenium时出现此问题,并防止这种情况,这种情况已经发生在我身上

  1. 您明天有一个大发布计划。
  2. 您的操作系统或docker容器中以某种方式升级了Google chrome/chromium。
  3. 由于新版本的浏览器不兼容,您的回归测试套件失败了。
  4. 您整夜都在试图修复它。

HitchChrome是hitchdev框架的一部分。

请注意,此包仅适用于测试。浏览器不会接收安全更新,如果用于浏览公开网络,则可能存在潜在的安全风险。

如何使用?

首先,构建到您选择的目录中

from hitchchrome import ChromeBuild

chrome_build = ChromeBuild("./chrome84", "84")
chrome_build.ensure_built()

然后使用,可以是图形界面

driver = chrome_build.webdriver()
driver.get("http://www.google.com")
driver.quit()

或无头

driver = chrome_build.webdriver(headless=True)
driver.get("http://www.google.com")
driver.quit()

您还可以添加chrome选项参数,如下所示

driver = chrome_build.webdriver(
    headless=True,
    arguments=[
        "--window-size=1024,768",
        "--disable-dev-shm-usage",
        "--no-sandbox",
    ]
)

或者,您可以抓取二进制位置以在其他地方使用

print(chrome_build.chrome_bin)
print(chrome_build.chromedriver_bin)

包状态

  • 适用于chrome版本80 - 84。

为什么不使用X?

  • 容器化Docker。要么您以无头模式运行浏览器,否则您可能需要花费比构建这个包更多的时间来尝试让它工作。但话又说回来,您可能可以在Docker中运行这个包(但请参见以下注意事项)。
  • pyderman - 仅下载chromedriver。除非三个版本都得到控制并保持同步(浏览器、驱动程序、Selenium),否则最终可能会出现不同步的情况。
  • chromedriver-binary -- 同样。此外,当您的操作系统升级chrome或chromium或您想升级Selenium时,您必须手动在requirements.txt中更新它。我在决定编写这个包时使用了它。

注意事项

  • 需要安装aria2(用于下载)。您需要执行“apt-get install aria2”或“brew install aria2”或等效命令。
  • 请勿将此包用于常规浏览和/或爬取。它修复的chromium版本不接收安全更新。如果您因为此包被黑客攻击,那是由您负责的。此包不提供任何保修,明示或暗示。请自行承担全部风险。建议仅用于测试您自己的代码。
  • 此包修复了setup.py中的Selenium版本。这是有意为之,以确保使用的版本已经与下载的chromium/chromedriver版本进行了测试。如果您有一个较晚的Selenium版本在requirements文件中或作为其他包的依赖项,它可能会与这个版本冲突。

Docker注意事项

  • ensure_built()将在第一次运行时下载和安装chromium + 驱动程序,并在后续运行时使用它。如果您在Docker容器中运行此程序,除非您在构建步骤中运行它,否则它将尝试在每次运行时下载chrome(约150MB)。这会工作,但会很快变得令人烦恼。
  • 如果您使用此包在Docker容器中以无头模式运行,用户不得是root用户(即默认用户)。Chrome将拒绝运行。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

hitchchrome-85.0.tar.gz (13.0 kB 查看散列值)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面