Selenium Edge驱动程序没有获取URL - java

时间:2016-05-12 18:00:46

标签: java selenium selenium-webdriver microsoft-edge

我最近将我的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

以下是"关于此应用"显示版本的设置部分: enter image description 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) 

我不确定这里发生了什么,任何事都会有所帮助,谢谢。

2 个答案:

答案 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时,问题就出现了整流。

我使用以下步骤来解决此问题 -

  1. 转到开始>设置>系统>关于并记下操作系统版本号。

  2. 从此链接下载适当版本的驱动程序 - https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

  3. 如果下载的文件是.msi,则安装它以获取.exe驱动程序。对于其中一个版本,可以下载直接.exe。

  4. 我使用的示例脚本如下 -

    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/

    ,可以参考此文章