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

sh7euo9m  于 2023-04-27  发布在  Go
关注(0)|答案(8)|浏览(383)

我一直在努力学习Selenium的方法,我们可以把它纳入我们的测试。我已经阅读和观看了一些教程,它基本上需要使用chromedriver.exe设置为webdriver.chrome.driver属性。然而,我们公司的政策限制我们使用/执行exe文件。因此,当我尝试我的代码为Selenium chrome,我得到一个错误,试图执行的exe是未经授权的。
所以我的问题是,有没有什么方法可以让我在不使用chromedriver.exe的情况下将Selenium用于chrome?如果你知道一个文档,turorial甚至youtube指南的链接,请让我知道。谢谢!

rqenqsqc

rqenqsqc1#

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

lfapxunr2#

是的,您可以使用而无需下载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/

23c0lvtd

23c0lvtd3#

我相信在Selenium中不使用chromedriver.exe是不可能使用chrome浏览器的。这同样适用于Internet Explorer。
然而,如果你真的被禁止使用.exe文件,那么在Firefox中执行你的测试脚本将是有帮助的。你需要做的就是添加下面的代码:

driver = new FirefoxDriver();

不需要参考任何.exe文件,当谈到火狐。希望这有帮助!

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

bbuxkriu

bbuxkriu4#

如果你的项目是基于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");

我最近尝试了这个,仍然要评估利弊。如果得到更多的信息,请提到你的优点/缺点。谢谢。

qlvxas9a

qlvxas9a5#

不,你不能。你可以给予chrome当前安装文件夹的内置exe路径,或者你必须给出chrome exe路径。因为selenium只支持firefox作为内置功能。

qgzx9mmu

qgzx9mmu6#

不,你不能使用 selenium chrome 浏览器不使用chromedriver.exe

oalqel3c

oalqel3c7#

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

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

uqcuzwp88#

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

相关问题