是否可以在没有驱动程序的情况下使用 Selenium?

Posted

技术标签:

【中文标题】是否可以在没有驱动程序的情况下使用 Selenium?【英文标题】:Is it possible to use Senenium without driver? 【发布时间】:2021-07-07 18:50:00 【问题描述】:

我想在 spyder/Jupyter-notebook 中使用 selenium,但我无法下载驱动程序。是否可以在不下载驱动程序的情况下以某种方式使用 selenium,例如在协作版本中

【问题讨论】:

由于可执行文件的工作限制而无法下载驱动程序?或者你的意思是你真的不能下载它(技术问题)? 我要运行这段代码的电脑,被拒绝了 如果您使用 Java,我认为可以通过 Maven/POM 文件解决此问题,但我不确定是否使用 Python。希望其他人提出解决方案。祝你好运。 【参考方案1】:

Selenium 是一个主要启用和支持网络浏览器自动化的工具。因此,它确实需要后端的 Web 驱动程序。来自docs:

要在您的自动化项目中使用 Selenium,您需要为您选择的语言安装语言绑定库。此外,您将需要 WebDriver 二进制文件用于您想要自动化和运行测试的浏览器。

此外,查看repo,您会发现它确实需要驱动程序,具体取决于您打算使用的浏览器。

如果您因为政策限制而无法安装驱动程序,请与您的管理员联系并说明您需要它的原因;他们也许可以为您安装它。

【讨论】:

【参考方案2】:

您可以使用无头方法来运行 selenium。 https://dev.to/googlecloud/using-headless-chrome-with-cloud-run-3fdp

【讨论】:

【参考方案3】:

如果您不想在本地运行它,您可以使用 Remote 驱动程序。例如,您可以在 aws 设备场上运行它。如果您想在 aws 设备场上执行此操作,请参考以下示例:

https://docs.aws.amazon.com/devicefarm/latest/testgrid/testing-frameworks-python.html

import boto3
from selenium.webdriver import DesiredCapabilities
from selenium.webdriver import Remote
class MyPytestTests():
  def setup_method(self, method):
    devicefarm_client = boto3.client("devicefarm")
        testgrid_url_response = devicefarm_client.create_test_grid_url(
        projectArn= "arn:aws:devicefarm:us-west-2:111122223333:testgrid-project:123e4567-e89b-12d3-a456-426655440000",
      expiresInSeconds=300
      )
     desired_capabilities = DesiredCapabilities.FIREFOX
     desired_capabilities["platform"] = "windows"
     self.driver = Remote(testgrid_url_response['url'], desired_capabilities)

拆解:

   def teardown_method(self, method):
    self.driver.quit()

(摘自 aws 文档)

【讨论】:

以上是关于是否可以在没有驱动程序的情况下使用 Selenium?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在没有 Java 的情况下构建 Android 应用程序? [复制]

是否可以在没有密码的情况下使用 Spring SecurityConfiguration HttpSecurity 登录?

是否可以在没有发布应用程序的情况下使用适用于 iOS 的 Facebook SDK?

是否可以在没有 mac 应用商店的情况下分发签名的 mac 应用程序(使用免费开发帐户)?

是否可以在没有默认数据库的情况下使用 Laravel 4

是否可以在没有我的服务器的情况下从 Android 应用程序付款?