我必须在maven中自动化测试用例运行配置。下载合适的Chrome或Firefox webdriver也是其中的一部分。
在pom.xml的build标记下
<plugin>
<groupId>com.github.webdriverextensions</groupId>
<artifactId>webdriverextensions-maven-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<goals>
<goal>install-drivers</goal>
</goals>
</execution>
</executions>
<configuration>
<installationDirectory>${testbench.driver.path}/drivers</installationDirectory>
<drivers>
<driver>
<name>geckodriver</name>
<platform>windows</platform>
<version>0.29.0</version>
</driver>
<driver>
<name>chromedriver</name>
<platform>windows</platform>
<version>90.0.4430.24</version>
</driver>
</drivers>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<id>failsafe-integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>failsafe-verify</id>
<phase>verify</phase>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<trimStackTrace>false</trimStackTrace>
<systemPropertyVariables>
<webdriver.chrome.driver>${testbench.driver.path}/drivers/chromedriver-windows-32bit.exe</webdriver.chrome.driver>
<webdriver.gecko.driver>${testbench.driver.path}/drivers/geckodriver-windows-64bit.exe</webdriver.gecko.driver>
</systemPropertyVariables>
</configuration>
</plugin>
<!-- The Jetty plugin allows us to easily test the development build by
running jetty:run on the command line. -->
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<scanIntervalSeconds>2</scanIntervalSeconds>
<stopKey>STOP</stopKey>
<stopPort>8005</stopPort>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
在这里我手动输入了要下载和安装的chrome驱动程序的版本。但是我希望开发者的机器能自动检测到oorwser版本并自动下载相应的驱动程序。如果我没有提到驱动程序的版本,我会在构建过程中出错。
这怎么可能呢?我需要对Chrome和Firefox webdriver的支持。
2条答案
按热度按时间zaq34kh61#
您可以使用WebDriver Manager API。-它会将driver.exe下载到您的/m2/repository/webdriver文件夹(使用Maven时)。它还会自动检查您的浏览器版本并下载匹配版本的driver.exe。
要使用Webdriver Manager API,请在pom.xml文件中包含以下行:
这样就可以省去以下步骤:
1)手动下载驱动程序二进制文件并将其放置在
2)下面的代码行也需要删除:
更多信息here
ycl3bljg2#
正在添加最新答案。
从版本Selenium 4.6.0开始,不需要使用第三个WebDriverManager。相反,Selenium内置了对SeleniumManager类的支持。Selenium管理器支持所有浏览器,包括Chrome、Edge和Firefox。无需手动下载任何驱动程序,因为它将从SeleniumManager自动处理。
实施步骤:
将POM文件中的Selenium升级到4.6.0。
chrome的代码实现示例如下,不需要添加任何额外的代码行来处理它,类似的实现也适用于其他浏览器[目前是beta版]。更多信息请参考link。