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

Can I use Selenium (webdriver) for Chrome without using chromedriver.exe?

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

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

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

不,如果不使用 chromedriver.exe

,您不能将 selenium 用于 chrome 浏览器

我认为不使用 chromedriver.exe 就无法在 Selenium 中使用 chrome 浏览器。这同样适用于 Internet Explorer。

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

driver = new FirefoxDriver();

使用 Firefox 时无需引用任何 .exe 文件。希望这对您有所帮助!

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

这可能不是一个好的做法,但您可以使用 AutoIT 来完成。在您的项目中使用运行时 class 启动 chrome 浏览器和 AutoIT 代码。

AutoIT 代码:

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

如果您的项目是基于 Maven 的,您可以添加以下依赖项。这有 ChromeDriverManager class 负责 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");

最近试了这个,还是要评价一下优缺点。如果需要更多信息,请在 pros/cons 上提及您的观点。 谢谢

如果它是基于 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");  

是的,不用下载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/