首页 > 解决方案 > 如何使用 Edge webdriver 运行 selenium 独立服务器?

问题描述

我正在尝试针对 Edge 运行 Selenium 测试,就像我在 Chrome 或 Internet Explorer 11 上成功运行一样,但它失败了。

我所做的是启动独立的硒,它工作正常:

java -Dwebdriver.edge.driver=C:\tmp\msedgedriver.exe -jar C:\tmp\selenium-server-standalone-3.141.59.jar -port 4445

但是当我运行 Selenium 测试时,它失败并出现以下错误:

我尝试添加“-DbrowserName=edge”,但没有任何区别。

有什么我错过的吗?

构建信息:版本:'3.8.1',修订:'6e95a6684b',时间:'2017-12-01T19:05:32.194Z' 系统信息:主机:'MSEDGEWIN10',ip:'10.0.2.15',操作系统。名称:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'1.8.0_201' 驱动程序信息:driver.version:org.openqa.selenium.remote.server 未知.DefaultDriverFactory.newInstance(DefaultDriverFactory.java:89) 在 org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:171) 在 org.openqa.selenium.remote.server.DefaultSession.(DefaultSession. java:88) 在 org.openqa.selenium.remote.server.DefaultDriverSessions.newSession(DefaultDriverSessions.java:72) 在 org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:63) 在 org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:37) 在 org .openqa.selenium.remote.server.rest.ResultConfig.handle(ResultConfig.java:112) 在 org.openqa.selenium.remote.server.JsonHttpCommandHandler.handleRequest(JsonHttpCommandHandler.java:191) 在 org.openqa.selenium.remote .server.DriverServlet.lambda$handleRequest$0(DriverServlet.java:261) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java: 266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) 08:13:43.301 警告 - 异常:最佳匹配驱动程序提供程序类 org.openqa.selenium.edge.EdgeDriver 无法为功能 {浏览器名称:边缘}

标签: seleniumselenium-webdrivermicrosoft-edge

解决方案


这是我编写的使用 Feature on Demand EdgeDriver 的 java 代码。这尚未经过测试,因此如果您使用它,请告诉我它是否有效:

      String windir = System.getenv("windir");
                boolean is64bit = false;

      is64bit = (System.getenv("ProgramFiles(x86)") != null);
      String edgeDriverPath = windir + "\\SysWOW64\\MicrosoftWebDriver.exe";
        if (!is64bit)
        {
        edgeDriverPath = windir + "\\System32\\MicrosoftWebDriver.exe";
        }

       System.setProperty("webdriver.edge.driver", edgeDriverPath); 
       EdgeOptions edgeOptions = new EdgeOptions();

       //edgeOptions.setPageLoadStrategy(stringPageLoadConstant);
         try {
             driver = new EdgeDriver(edgeOptions);
             }
           catch (Exception ex)
            {
            System.out.println ("Problem launching EdgeDriver: " + ex.toString());      
            }

推荐阅读