Serenity 无法从
msedgedriver
文件中找到 serenity.properties
可执行文件。我的属性文件如下所示:
#webdriver.driver=chrome
#webdriver.chrome.driver = src/test/resources/webdriver/windows/chromedriver-win64/chromedriver.exe
webdriver.driver=edge
webdriver.edge.driver = src/test/resources/webdriver/windows/edgedriver-win64/msedgedriver.exe
#webdriver.driver=firefox
#webdriver.geckodriver.driver = src/test/resources/webdriver/windows/firefoxdriver-win64/geckodriver.exe
...
使用
chromedriver
或 geckodriver
时,Serenity 可以毫无问题地找到其可执行文件并按预期实例化网络驱动程序。 msedgedriver
的路径是正确的,我也尝试过绝对路径,但没有成功。
我的 Edge 浏览器版本与下载的 msedgedriver 版本 (123) 兼容。
当我正确设置系统属性,就像其他两个按预期工作的驱动程序一样,我无法理解 Serenity 如何无法成功实例化驱动程序。
完整错误:
Caused by: net.thucydides.core.webdriver.DriverConfigurationError: Could not instantiate new WebDriver instance of type class org.openqa.selenium.edge.EdgeDriver (The path to the driver executable must be set by the webdriver.edge.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/MicrosoftWebDriver. The latest version can be downloaded from http://go.microsoft.com/fwlink/?LinkId=619687). See below for more details.
找到解决方法!
由于某种原因,在 serenity.properties 文件或 serenity.conf 中设置系统属性对 msedgedriver 不起作用。
但是如果您的项目是 gradle 构建,您可以在其中设置系统属性,它将起作用:
test {
systemProperty("webdriver.edge.driver", "src/test/resources/webdriver/windows/edgedriver-win64/msedgedriver.exe")
}