什么是浏览器二进制管理器如何将其用于Selenium

什么是浏览器二进制管理器如何将其用于Selenium,selenium,selenium-webdriver,webdriver,Selenium,Selenium Webdriver,Webdriver,我最近了解到,在自动化项目中使用“WebDriver二进制文件”管理器是一种很好的做法。 但不确定这是什么以及如何使用? 也做了一些谷歌搜索,得到了很多关于如何管理二进制文件的帖子;但不是关于为什么要使用。 因此,如果有人能用它的优点来指导,那就太好了。当你说WebDriver二进制文件时,我假设你说的是WebDriver绑定或库。如果不在项目中添加WebDriver绑定,您就无法真正使用WebDriver界面,就像您无法调用任何浏览器或驱动任何网站一样。您可以手动将它们添加到项目构建路径中,也

我最近了解到,在自动化项目中使用“WebDriver二进制文件”管理器是一种很好的做法。 但不确定这是什么以及如何使用? 也做了一些谷歌搜索,得到了很多关于如何管理二进制文件的帖子;但不是关于为什么要使用。
因此,如果有人能用它的优点来指导,那就太好了。

当你说WebDriver二进制文件时,我假设你说的是WebDriver绑定或库。如果不在项目中添加WebDriver绑定,您就无法真正使用WebDriver界面,就像您无法调用任何浏览器或驱动任何网站一样。您可以手动将它们添加到项目构建路径中,也可以使用任何依赖关系管理工具(如Maven)将所有WebDriver库添加到项目中。然后你可以使用它们。 您可以只添加独立服务器文件,这将完成与WebdDriver绑定相同的工作


有第三方驱动程序,我们用于bowser的每一个,比如chrome-chromedriver.exe、firefox-geckodriver.exe等等——这些也被称为WebDriver binarie(主要被认为是驱动程序文件)。

一段时间后终于知道了这一点,如下所示,认为它可能对其他人有用,因此将其作为自我回答发布

作为一名自动化工程师,我们始终必须为浏览器二进制文件设置路径,为此,我们首先需要下载一个二进制文件[driver.exe],该文件允许WebDriver处理浏览器。此外,此二进制文件的绝对路径必须设置为JVM属性,如下所示:

System.setProperty(“webdriver.chrome.driver”,“您的/chromedriver路径”); setProperty(“webdriver.gecko.driver”,“您的路径/geckodriver”)

这不仅仅是下载和设置属性来设置二进制路径,还需要在浏览器版本或Selenium版本更改时频繁更改二进制文件。 我找到了这个解决方案并实现了它——仅此而已! 现在我不再需要浏览器的exe库了! 一个小型的maven仓库让生活变得轻松

工作原理: 在处理Maven项目时,您只需要添加一个名为WebDriverManager的依赖项。此库将处理您的浏览器版本和驱动程序的所有内容

为了在Maven项目中使用WebDriverManager,只需在pom.xml中添加以下依赖项:

<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.3.0</version>
</dependency>
你完了! 行
WebDriverManager.chromedriver().setup()
,为您发挥了所有的魔力:

它检查WebDriver二进制文件的最新版本

如果您的系统上没有WebDriver二进制文件,它将下载该二进制文件

它导出Selenium所需的WebDriver Java环境变量

参考:

您是在自动化项目中使用selenium,还是使用其他自动化工具?如果您使用selenium,除了使用早期版本的selenium和Firefox(对于早期版本的selenium和Firefox,Firefox的WebDriver是一个扩展,并集成到selenium jar中,该扩展将由selenium自动安装到Firefox中)之外,您无法避免只使用
WebDriver binary
你能分享一下你如何在没有WebDriver的情况下使用Selenium的代码示例吗?HI Yong和Andersson:我只使用WebDriver,但不确定/意识到“二进制”这个词……可能是需要改革的问题,我已经编辑过了……(二进制=二进制可执行文件,如chromedriver或geckodriverbinaries指chromedriver/geckodriver/等等
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();