我最近将我的selenium库从2.46.0更新到2.53.0(最新版),以便在使用Edge浏览器的Windows 10计算机上运行测试。
我已将此添加到我的测试中'设置阶段将webdriver初始化为EdgeDriver:
System.setProperty("webdriver.edge.driver", driverDir+"MicrosoftWebDriver.exe"); DesiredCapabilities capabilities = new DesiredCapabilities("MicrosoftEdge", "", Platform.WINDOWS); driver = new EdgeDriver(capabilities);
"驱动程序" field是WebDriver类的一个对象。
这成功启动了Edge浏览器,但是我尝试获取的url永远不会被使用。
我已尝试过Microsoft为此浏览器提供的两个驱动程序here
我可以使用自动启动的浏览器手动加载页面。
让测试用例在hudson上失败,我在控制台窗口中得到了这个堆栈跟踪:
15:13:04 [junit] Unknown error (WARNING: The server did not provide any stacktrace information) 15:13:04 [junit] Command duration or timeout: 100.28 seconds 15:13:04 [junit] Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 16:57:40' 15:13:04 [junit] System info: host: 'DESKTOP-7LLLD31', ip: '172.16.4.159', os.name: 'Windows 8', os.arch: 'amd64', os.version: '6.2', java.version: '1.7.0_51' 15:13:04 [junit] Driver info: org.openqa.selenium.edge.EdgeDriver 15:13:04 [junit] org.openqa.selenium.WebDriverException: Unknown error (WARNING: The server did not provide any stacktrace information) 15:13:04 [junit] Command duration or timeout: 100.28 seconds 15:13:04 [junit] Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 16:57:40' 15:13:04 [junit] System info: host: 'DESKTOP-7LLLD31', ip: '172.16.4.159', os.name: 'Windows 8', os.arch: 'amd64', os.version: '6.2', java.version: '1.7.0_51' 15:13:04 [junit] Driver info: org.openqa.selenium.edge.EdgeDriver 15:13:04 [junit] at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 15:13:04 [junit] at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) 15:13:04 [junit] at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) 15:13:04 [junit] at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) 15:13:04 [junit] at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249) 15:13:04 [junit] at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131) 15:13:04 [junit] at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:144) 15:13:04 [junit] at org.openqa.selenium.edge.EdgeDriver.(EdgeDriver.java:152) 15:13:04 [junit] at org.openqa.selenium.edge.EdgeDriver.(EdgeDriver.java:120)
我不确定这里发生了什么,任何事都会有所帮助,谢谢。
答案 0 :(得分:0)
看起来它无法实例化新版本的驱动程序。从堆栈中,它似乎也认为操作系统是Windows 8,但这可能是Selenium中的一个错误:
'DESKTOP-7LLLD31', ip: '172.16.4.159', os.name: 'Windows 8', os.arch: 'amd64', os.version: '6.2', java.version: '1.7.0_51'
需要注意的一点是,您应该始终使用Windows / Microsoft Edge / Microsoft WebDriver的匹配版本。因此,根据您的屏幕截图,您使用的是Windows / Microsoft Edge版本10586,并且应该使用位于此处的驱动程序的build 10586: Microsoft WebDriver Fall 2015 Update
如果您实际上是在Windows 10上并运行它并看到此问题,那么下一个要查看的区域可能就是功能。尝试创建一个实例而不传递任何功能,看看是否有效。如果您传入的功能是必需的并且最终不正确,则会导致创建WebDriver实例失败。
答案 1 :(得分:0)
我还遇到了边缘浏览器开放的问题。但它没有加载网站网址并自动关闭。
我尝试使用Selenium 3.0 Beta2和Windows 10.我遇到了这个问题,因为我使用的是不正确版本的MicrosoftWebDriver.exe。当我使用正确版本的webdriver时,问题就出现了整流。
我使用以下步骤来解决此问题 -
转到开始>设置>系统>关于并记下操作系统版本号。
从此链接下载适当版本的驱动程序 - https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
如果下载的文件是.msi,则安装它以获取.exe驱动程序。对于其中一个版本,可以下载直接.exe。
我使用的示例脚本如下 -
System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft Web Driver\\MicrosoftWebDriver.exe"); //put actual location
WebDriver driver = new EdgeDriver();
driver.get("your link");
如果您想查看详细步骤 - http://automationtestinghub.com/selenium-3-launch-microsoft-edge-with-microsoftwebdriver/
,可以参考此文章