我可以在不使用 chromedriver.exe 的情况下使用适用于 Chrome 的 Selenium (webdriver) 吗?

问题描述 投票:0回答:9

我一直在尝试研究 Selenium,以便将其纳入我们的测试中。我已经阅读并观看了一些教程,它基本上需要使用 chromedriver.exe 设置为 webdriver.chrome.driver 属性。但是,我们的公司政策限制我们使用/执行 exe 文件。因此,当我尝试使用 Selenium chrome 的代码时,我收到一条错误,指出尝试执行的 exe 未授权。

所以我的问题是,有什么方法可以在 chrome 中使用 Selenium 而不必使用 chromedriver.exe 吗?如果您知道文档、教程甚至 YouTube 指南的链接,请告诉我。谢谢!

google-chrome selenium selenium-webdriver selenium-chromedriver
9个回答
6
投票

是的,无需下载chromedriver.exe文件即可使用

pip install webdriver-manager

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

前往官方网站了解更多信息。

https://pypi.org/project/webdriver-manager/


5
投票

我相信如果不使用 chromedriver.exe 就不可能在 Selenium 中使用 chrome 浏览器。这同样适用于 Internet Explorer。

但是,如果您确实被禁止使用 .exe 文件,那么在 Firefox 中执行测试脚本将会有所帮助。您需要做的就是添加以下代码:

driver = new FirefoxDriver();

对于 Firefox,无需引用任何 .exe 文件。希望这有帮助!

更新:在 Selenium 3 之后,甚至 Firefox 也需要 geckodriver。


5
投票

如果它是基于maven的项目并且您使用的是最新版本的selenium-chrome-driver和webdrivermanager,您可以尝试在pom.xml中使用以下依赖项

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-chrome-driver</artifactId>
        <version>3.141.59</version>
    </dependency>
    <dependency>
        <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>3.7.1</version>
    </dependency>

使用WebDriverManager,

    WebDriverManager.chromedriver().setup();
    WebDriver driver = new ChromeDriver();
    driver.get("http://google.com");  

4
投票

如果您的项目是基于 Maven 的,您可以添加以下依赖项。它有 ChromeDriverManager 类,它负责处理 chromedriver 二进制文件,并且维护二进制文件的最新版本,减少了手动维护驱动程序 exe 文件的手动工作。

<dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>1.7.2</version>
            <scope>test</scope>
</dependency>

ChromeDriverManager.getInstance().setup();
driver = new ChromeDriver();
driver.get("http://www.google.co.in");

我最近尝试过这个,仍然需要评估利弊。如果需要更多信息,请提及您的优点/缺点。 谢谢。


0
投票

不,你不能。您可以提供 chrome 当前安装文件夹的内置 exe 路径的路径,或者您必须提供 chrome exe 路径。由于 selenium 仅支持 Firefox 作为内置功能。


0
投票

不,如果不使用 chromedriver.exe,则无法将 selenium 用于 chrome 浏览器


0
投票

这可能不是一个好的做法,但您可以使用 AutoIT 来做到这一点。使用项目中的 Runtime 类启动 chrome 浏览器和 AutoIT 代码。

AutoIT 代码:

winwait("title","","10")
If winexist("title") Then
   winactivate("title")
endif

0
投票

'是的。如果您使用的是 Selenium 4.9.0。那么您不需要显式使用 chromedriver.exe。 Jar“Selenium-chrome-driver-4.9.0”将包含在包中。


0
投票

您可以使用 Bonigarcia WebdriverManager。它会照顾好一切。 https://github.com/bonigarcia/webdrivermanager

它还有方便的 Maven 和 gradle 依赖项。非常容易使用

© www.soinside.com 2019 - 2024. All rights reserved.