Edge browser in VirtualBox VM with selenium grid sometimes loads page indefinitely

Not reproducible Issue #10832732

Details

Author
George V.
Created
Feb 7, 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

I am trying to run python selenium tests in a selenium grid, hub in linux and node with an Edge browser in a VirtualBox VM of Win_10 with MicrosoftWebDriver.

VM and MicrosoftWebDriver are the latest downloaded from Microsoft and versions match, both are for build 14393.

I am using selenium-server-standalone-3.0.1.jar

The trouble I am having in the Edge browser is that occasionally, during a selenium get(url) or when a form submit button in the browser is clicked, the browser will keep showing the loading indicator until it times-out and the test fails.

In linux I start the hub with:

java -jar selenium-server-standalone-3.0.1.jar -role hub -port 4444 -log selenium_grid_hub.log -timeout 100 -browserTimeout 100

and the node with:

java -Dwebdriver.edge.driver=MicrosoftWebDriver.exe -jar selenium-server-standalone-3.0.1.jar -role node -nodeConfig nodeconfig.json -hub http://192.168.1.69:4444/grid/register -timeout 100 -browserTimeout 100

in the above node and hub commands I added the timeouts since otherwise the Edge browser would load for ever, now it will fail the test after the timeout

inside the test I set the webdriver as (python):

desired_capabilities = DesiredCapabilities.EDGE.copy()
desired_capabilities[‘ignoreProtectedModeSettings’] = True

command = ‘http://’ + options.get(‘hub_ip’) + ‘:’ + options.get(‘hub_port’) + “/wd/hub”

selenium = webdriver.Remote(
command_executor=command,
desired_capabilities=desired_capabilities)

the nodeconfig.json file is set to:

{
"capabilities":
[
{
"browserName":"MicrosoftEdge",
"maxInstances":1,
“seleniumProtocol":"WebDriver”
}
],
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"register": true,
"registerCycle": 5000,
"maxSession":6,
"port":7777
}

I appreciate very much any info you can give me on how to track/solve this.


George

Attachments

0 attachments

    Comments and activity

    • the full build number of the VM is 14393.rs1_release.161220-17447

    • Microsoft Edge Team

      Changed Assigned To to “Brad E.”

      Changed Assigned To from “Brad E.” to “Steven K.”

    • Hi George,

      Have you tried this with the latest version of selenium-server-standalone, i.e. 3.4.0?  I believe this version has a significant amount of changes.

    • Microsoft Edge Team

      Changed Status to “Confirmed”

      Changed Title from “Edge browser in VirtualBox VM with selenium grid sometimes loads page indefinitely” to “Edge browser in VirtualBox VM with selenium grid sometimes loads page indefinitely”

    • Hi George,

      I have my repro environment setup for verifying this.  I wanted to check-in to see if you have any updates on this.

      Either way, I will run the testing in the following environment:

      • Hub: Hyper-V CentOS 7 VM
           > Python 2.7.x
      • Node: Hyper-V Windows 10 15063 VM
           > 15063 MicrosoftWebDriver.exe

      Steve

    • Hi George,

      Can you send me your test script which is failing?  Are you using Explicit or Implicit Waits?  I know you set an overall timeout for the hub and the node configurations.  However, are you using any in your test cases?

      This information would be useful as I am going to let my grid setup run for a while and I would expect it to fail from time to time if I do not use the explicit waits in the test case.  There can be variability in time the client sends the request to the Hub and when the Hub sends the requests to the node, and other misc. variables impacting the timing.

      For Python:
      https://selenium-python.readthedocs.io/waits.html#implicit-waits

      driver.get(“http://somedomain/url_that_delays_loading”)
      try:
          element = WebDriverWait(driver, 10).until(
              EC.presence_of_element_located((By.ID, “myDynamicElement”))
          )
      finally:
          driver.quit()

      For C#

                  WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeOut));
                  By myBy = By.Id(searchFor);
                  wait.Until(ExpectedConditions.ElementExists(myBy));
                  Actions clicker = new Actions(driver);
                  foundElement = driver.FindElement(myBy);
                  clicker.MoveToElement(foundElement, 50, 180).Click().Perform();

      Also, wanted to let you know about a bug in the current version of the Selenium server 3.4.0.

      https://github.com/SeleniumHQ/selenium/issues/3808

      The user Grimlek has a work around posted near the end of that page for the capabilities parameters.  Look for the section containing the following:

      "parameters = {"capabilities": w3c_caps,
                            “desiredCapabilities": capabilities}”

      Hope to hear from you,

      Steve

    • I misstated the Selenium bug in my previous post.  The issue was specifically with the 3.4.0 and 3.4.1 Python WebDriver Client Language Bindings.  This issue appears to have been resolved in the May 18th, 2017 release 3.4.2.

      https://raw.githubusercontent.com/SeleniumHQ/selenium/master/py/CHANGES

    • Microsoft Edge Team

      Changed Status from “Confirmed” to “Not reproducible”

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

    Sign in