Microsoft Edge Driver keeps throwing "Not Implemented" When running selenium tests

Issue #12238249 • Assigned to Steven K.

Details

Created
Jun 5, 2017
Privacy
This issue is public.
Found in
  • Microsoft Edge
Reports
Reported by 1 person

Sign in to watch or report this issue.

Steps to reproduce

Hello,

I’m working with automated tests and I’m trying to set up selenium grid for running tests in multiple environments.

I’ve successfully ran tests with chrome driver in Mac OS X 10.11 and Windows10.

I’ve tried to run the tests locally with selenium standalone server,and when I run a test feature, with edge driver, the following message prompts on:

10:27:40.114 INFO - Done: [send keys to active: [1, 1, 1, 1]]
10:27:43.075 INFO - Executing: [fetching available log types])
10:27:43.106 WARN - Exception thrown
org.openqa.selenium.WebDriverException: Not implemented (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 31 milliseconds
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'DESKTOP-FBA3OPB', ip: '10.241.11.37', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131'
Driver info: org.openqa.selenium.edge.EdgeDriver
Capabilities [{applicationCacheEnabled=true, pageLoadStrategy=normal, platform=ANY, acceptSslCerts=true, browserVersion=38.14393.1066.0, platformVersion=10, locationContextEnabled=true, webStorageEnabled=true, browserName=MicrosoftEdge, takesScreenshot=true, takesElementScreenshot=true, javascriptEnabled=true, platformName=windows}]
Session ID: 1C4384EA-0B3D-4C06-B0C6-9C3773C6C7D6
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:215)
        at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:167)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:671)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:694)
        at org.openqa.selenium.remote.RemoteExecuteMethod.execute(RemoteExecuteMethod.java:33)
        at org.openqa.selenium.remote.RemoteLogs.getAvailableLogTypes(RemoteLogs.java:103)
        at org.openqa.selenium.remote.server.handler.GetAvailableLogTypesHandler.call(GetAvailableLogTypesHandler.java:37)
        at org.openqa.selenium.remote.server.handler.GetAvailableLogTypesHandler.call(GetAvailableLogTypesHandler.java:28)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:176)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
10:27:43.106 WARN - Exception: Not implemented (WARNING: The server did not provide any stacktrace information)

This specific case I was trying to run the following command (see setValue for more information):

browser.setValue('(//input[contains(@class, "pin")][1])[1]',1);

Another statement where it sometimes fail is:

16:10:06.939 INFO - Executing: [find elements: By.xpath: //div[contains(@class, "content") and contains(@class, "pins")]])
16:10:06.954 INFO - Done: [find elements: By.xpath: //div[contains(@class, "content") and contains(@class, "pins")]]
16:10:07.126 INFO - Executing: [fetching available log types])
16:10:07.251 WARN - Exception thrown
org.openqa.selenium.WebDriverException: Not implemented (WARNING: The server did not provide any stacktrace information)
driver.waitForExist('//div[contains(@class, "content") and contains(@class, "pins")]', 2000);

Note that this does not always happen on the same selenium command, occasionally the tests run successfully. Not sure What I’m missing here, should be a problem on the webdriver since I’ve tested with both selenium standalone and grid and this is running on other browsers like chrome and firefox (gecko driver).

Selenium standalone : 3.4.0
Windows : 10
Microsoft Edge: : 38.14393.1066.0
Microsoft EdgeHTML : 14.14393

Microsoft WebDriver:
Release 14393
Version: 3.14393

This should not be relevant but I’m using webdriverio and cucumber to run these tests (I leave the stacktrace):

1) User (full) sets up pin:
undefined
running MicrosoftEdge
undefined

Attachments

0 attachments

    Comments and activity

    • Changed Steps to Reproduce

    • Microsoft Edge Team

      Changed Assigned To to “Steven K.”

    • Hi,

      It appears to be a logging configuration issue.  What type of logging do you have enabled for WebDriver?
        Did you set the same driver capabilities for the chrome testing?

      https://github.com/SeleniumHQ/selenium/wiki/Logging

      From the two stack traces you sent, it appears the exception is being thrown during the method call to "RemoteLogs.getAvailableLogTypes(RemoteLogs.java:103)

      Here is what I am referring to in the first stack trace:

       at org.openqa.selenium.remote.RemoteLogs.getAvailableLogTypes(RemoteLogs.java:103)
              at org.openqa.selenium.remote.server.handler.GetAvailableLogTypesHandler.call(GetAvailableLogTypesHandler.java:37)
              at org.openqa.selenium.remote.server.handler.GetAvailableLogTypesHandler.call(GetAvailableLogTypesHandler.java:28)
            
      In the log output you sent (not certain from which log this is) it appears to show the find by XPath is successful. However, the query for log types is failing.

      16:10:06.954 INFO - Done: [find elements: By.xpath: //div[contains(@class, “content”) and contains(@class, “pins”)]]
      16:10:07.126 INFO - Executing: [fetching available log types])
      16:10:07.251 WARN - Exception thrown

      Hope this helps,

      Steve

    • Hello,

      Using webdriverio we have an after hook (more here) I have configured it to log with logType browser, this is working in other browsers (chrome/Mac OS X).

      The snippet I’m using:

      // Gets executed after all tests are done. You still have access to all global variables from
      // the test.
      after: function (result, capabilities, specs) {
        browser.log('browser');
      }
      

      I’m getting a session timeout in EDGE, I added this line in order to understand what is causing it, is there another way to see this log? Or should I open an issue explaining the scenario where tests are throwing 10:50:13.156 WARN - Exception: Session ID is null. Using WebDriver after calling quit()??

    • Hi,

      Just checked https://docs.microsoft.com/en-us/microsoft-edge/webdriver-commands and I can see log and log types are not supported, I’m still getting a session delete and therefore the session ID is lost (please see comment above) and I’m a little bit lost, is there anything (in terms of logs) I can configure in order to find what it is causing this?

      Thanks.

    • Can you share a minimal version that I can run to repo this?  Also, a version for chrome?

      Thanks for the link.  I should have checked that first.  :-/

      I will also run some testing to see what impact the lack of log support has as compared to a driver that does have this support.

      Steve

    • Forgot to answer your other question.  I think you actually found the answer yourself, I.e. Edge does not support those WebDriver API calls and so when the request is made for getting the available log types the “Not implemented” exception is being thrown.

      I have been using testNG’s Reporter class.

      import
      org.
      testng
      .Reporter;

      @BeforeTest

      public void
      enableTestNGLogging(){
      Reporter.log
      ( “Message”
      , true
      );
      }
      @BeforeMethod

      public void
      launchBrowser() throws
      Exception {
      System.out
      .println(“launching Microsoft Edge browser”
      );
      System.setProperty
      (“webdriver.edge.driver”
      , driverPath
      +"MicrosoftWebDriver.exe"
      );
      driver
      = new
      EdgeDriver();
      Reporter.log
      (“Browser Opened”
      );
      }

      @Test
      ()
      public void
      openEdgeBrowser() throws
      Exception {
      driver
      .get(“http://demo.automationtesting.in/Windows.html
      );
      Reporter.log
      (“driver.get();”
      );

      Thanks again for the continuing to push on this question/issue. I will investigate further.

    You need to sign in to your Microsoft account to add a comment.

    Sign in