I'm running a Selenium RC 2.48.0 server on a Mac using the Safari plugin for Selenium 2.48.0. I'm running my tests on a PC in Visual Studio with Selenium.net 2.48.0 with a Remote web driver for Safari.
Here's how I create my Safari RC Remote web driver connection:
RemoteWebDriver driver = new RemoteWebDriver(new Uri("http://192.168.50.13:4444/wd/hub"),DesiredCapabilities.Safari());
I try to send keys to the web driver using
driver.Keyboard.SendKeys("300001");
Problem: driver.Keyboard.SendKeys does not work. Instead they throw an exception. (The same commands work fine with a local Chrome Webdriver.
Selenium 2.48 is currently (at the time I'm writing this) the latest available Selenium version for Safari.
Here's the exception:
An exception of type 'System.InvalidOperationException' occurred in WebDriver.dll but was not handled in user code
Additional information: Unknown command: {"id":"15ugwifcwkos","name":"sendKeysToActiveElement","parameters":{"value":["3","0","0","0","0","1"]}} (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 4 milliseconds
Build info: version: '2.48.0', revision: 'b7b081a', time: '2015-10-07 15:48:56'
System info: host: '--------.local', ip: '192.168.50.13', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.2', java.version: '1.8.0_91'
Driver info: org.openqa.selenium.safari.SafariDriver
Capabilities [{browserName=safari, takesScreenshot=true, javascriptEnabled=true, version=9.0.2, cssSelectorsEnabled=true, platform=MAC, secureSsl=true}]
Session ID: null
Related
I am using mac mojave 10.14.3, JDK 1.8, Serenity core 2.0.40 (latest) to develop my test cases. They all run perfectly well either with Chrome ver. 73(100% of time) or Firefox ver. 65.0(99% of time) on my local mac system.
Our Jenkins is running on Redhat linux with no GUI. We installed Firefox browser( Firefox version 60.5.0 probably the latest available) since Chrome is not supported/ unavailable for RH Linux. When I merged code and ask my admin to run the git branch on Jenkins, I always get errors.
I have these in my project code itself:
Selenium-java :3.141.59
Selenium-api: 3.141.59
Selenium-server: 3.141.59
geckodriver:0.24.0
chromedriver:2.45.615355
Today after every test running 100% pass on my local Mac system, ran on Jenkins(RH Linux box) I am getting this error (ran 2 times).
net.thucydides.core.webdriver.UnsupportedDriverException: Could not
instantiate class org.openqa.selenium.firefox.FirefoxDriver at
net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:154)
Caused by: net.thucydides.core.webdriver.UnsupportedDriverException:
Could not instantiate new WebDriver instance of type class
org.openqa.selenium.firefox.FirefoxDriver (Timed out waiting 45
seconds for Firefox to start. Build info: version: '3.141.59',
revision: 'e82be7d358', time: '2018-11-14T08:17:03'
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting
45 seconds for Firefox to start. Build info: version: '3.141.59',
revision: 'e82be7d358', time: '2018-11-14T08:17:03' System info: host:
'xxx', ip: 'xxx', os.name: 'Linux', os.arch: 'amd64', os.version:
'3.10.0-957.5.1.el7.x86_64', java.version: '1.8.0_202' Driver info:
driver.version: FirefoxDriver
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting
45 seconds for Firefox to start. Build info: version: '3.141.59',
revision: 'e82be7d358', time: '2018-11-14T08:17:03' System info: host:
'xxx', ip: 'xxx', os.name: 'Linux', os.arch: 'amd64', os.version:
'3.10.0-957.5.1.el7.x86_64', java.version: '1.8.0_202' Driver info:
driver.version: FirefoxDriver at
org.openqa.selenium.firefox.XpiDriverService.waitUntilAvailable(XpiDriverService.java:247)
*********POSSIBLY A BUG ?????**
According to this page, [Serenity BDD Book]https://serenity-bdd.github.io/theserenitybook/latest/web-testing-in-serenity.html
I prepared my config.properties file as ...
Chrome Browser Headless Testing
webdriver.driver=chrome
headless.mode = true
drivers.windows.webdriver.chrome.driver =
src/test/resources/webdriver/windows/chromedriver.exe
drivers.mac.webdriver.chrome.driver =
src/test/resources/webdriver/mac/chromedriver
drivers.linux.webdriver.chrome.driver =
src/test/resources/webdriver/linux/chromedriver
Firefox Browser Headless Testing
webdriver.driver=firefox
gecko.firefox.options = {"args": ["-headless"]}
drivers.mac.webdriver.gecko.driver =
src/test/resources/webdriver/mac/geckodriver
drivers.linux.webdriver.firefox.driver =
src/test/resources/webdriver/linux/geckodriver
But I was having problem as reported above UnsupportedDriverException:
I need to say, everything worked perfectly on my local Mac system, but NOT on RedHat Linux machine with Firefox browser 60.5 version (which should work with geckodriver 0.24.0)
But our Jenkins System Admin added the geckodriver to system path, then it WORKED !!!!!
Our Jenkins Server is running on RedHat Linux.
So I have VM with Ubuntu on it. The host is on Win10. Inside this VM I installed a docker where I pulled jenkins and installed selenium plugin for jenkins.
I could reached a selenium node from win10. But when I try to launch a test from my IDE :
val cap: DesiredCapabilities = DesiredCapabilities.chrome()
cap.setBrowserName("chrome")
webDriver = new RemoteWebDriver(new URL("http://192.168.10.223:4445/wd/hub/"), cap)
go to "https://www.google.com"
I have this error and i don't understand why...
Exception encountered when invoking run on a nested suite - Unable to create new service: ChromeDriverService
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:08.936Z'
System info: host: '2d3135afb490', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-24-generic', java.version: '1.8.0_171'
Driver info: driver.version: unknown
Command duration or timeout: 101 milliseconds
Am I doing something wrong ? or am I missing some configuration ?
Docker Containers do not have a Desktop(and your selenium process is running inside such a container if I udnerstood it right) so they will not run UI tests. Your chances are:
Use PhantomJS Driver. This is a browser that won't render anything and does not need a Desktop. Disclaimer: Tried it in Headless(Desktopless) sessions but not on Docker
Try to Hack your Docker image and create an X Desktop Session.
Unable to run the selenium script while connected to the LAN, however it works fine when connected to the WIFI. I have kept all the proxy settings same.
Below is the code:
String exePath = "/usr/local/bin/chromedriver";
System.setProperty("webdriver.chrome.driver", exePath);
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com");
OS: Mac 10.11.6
Selenium: 2.53
Also tried with 3.8.1
ChromeDriver: 2.33.2
Chrome: V60.
Eclipse Oxygen.
Getting Below mentioned error message:
Starting ChromeDriver 2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2) on port 21777
Only local connections are allowed.
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: session not created exception
from disconnected: unable to connect to renderer
(Session info: chrome=60.0.3112.113)
(Driver info: chromedriver=2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2),platform=Mac OS X 10.11.6 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 2.65 seconds
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:32:46'
System info: host: '01hw382197', ip: '172.25.155.171', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '9.0.4'
Driver info: org.openqa.selenium.chrome.ChromeDriver
The error says it all :
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: session not created exception
from disconnected: unable to connect to renderer
(Session info: chrome=60.0.3112.113)
(Driver info: chromedriver=2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2),platform=Mac OS X 10.11.6 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 2.65 seconds
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:32:46'
The main reason is the binaries you are using are incompatible as :
You are using ChromeDriver v2.33 of (2017-10-03)
Your Chrome Browser version is 60.x
Your Selenium Client version is 2.53.1 of time: '2016-06-30 17:32:46'
So there is a time gap of almost 2 years between the release of Selenium Client v2.53.1 and ChromeDriver v2.33
Solution
Upgrade your Selenium Client to recent Selenium v3.9.1 level.
Upgrade your ChromeDriver to recent ChromeDriver=2.35 level.
As per the Release Notes of ChromeDriver=2.35 upgrade your Chrome Browser to Chrome v62-64 levels.
If your base Chrome Browser version is too old uninstall Chrome Browser through Revo Uninstaller and install a recent released GA version of Chrome Browser
Run CCleaner tool regularly to wipe off all the OS chores before and after the execution of your Test Suite
Execute your Tests
Update
As you mentioned you are unable to run the script while connected to the LAN but works fine when connected to the WIFI you need to ensure the following :
Ports used by the WebDriver variants (GeckoDriver / ChromeDriver / IEDriverServer) are not used by any other Software/Services over the LAN.
Ports (range of ports) are not blocked by the LAN Admins for specific purpose.
Firewall is disabled.
Selenium Code:
System.setProperty("webdriver.ie.driver","D:\\Automation\\Drivers\\IEDriverServer.exe");
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability("ignoreZoomSetting", true);
WebDriver driver = new InternetExplorerDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
Thread.sleep(3000);
driver.get("http://google.co.in");
Error :
Started InternetExplorerDriver server (64-bit)
3.8.0.0
Listening on port 25160
Only local connections are allowed
log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" org.openqa.selenium.remote.SessionNotFoundException: session null does not exist (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 2 milliseconds
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
System info: host: 'TS-39', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_91'
The error says it all :
org.openqa.selenium.remote.SessionNotFoundException: session null does not exist
Reason
The main reason you are seeing SessionNotFoundException is because of the following reasons :
You are using the InternetExplorerDriver of version 3.8.0.0 which is apparent from the logs below and is properly initiated.
Started InternetExplorerDriver server (64-bit)
3.8.0.0
Listening on port 25160
Only local connections are allowed
But your Selenium version is 2.53.1 which is apparent from the logs below :
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
Moreover your JDK version is much older of version 1.8.0_91 which is apparent from the logs below :
System info: host: 'TS-39', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_91'
Solution
The simple solution would be :
Update your JDK version to current levels JDK (Java SE 9.0.1).
Update your Selenium-Java Client version to current levels v3.8.1.
Update your InternetExplorerDriver version to current levels v3.8.0.0.
Execute your Test.
Im currently on Yosemite and Safari 8.
I keep getting this error:
Caused by: org.openqa.selenium.remote.UnreachableBrowserException: Failed to connect to SafariDriver after 10161 ms
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'TODIGWS000993.local', ip: 'xx.xx.xx.xx', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.1', java.version: '1.8.0_25'
Driver info: driver.version: SafariDriver
at org.openqa.selenium.safari.SafariDriverCommandExecutor.start(SafariDriverCommandExecutor.java:124)
at org.openqa.selenium.safari.SafariDriver.startClient(SafariDriver.java:72)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:114)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:139)
at org.openqa.selenium.safari.SafariDriver.<init>(SafariDriver.java:58)
at org.openqa.selenium.safari.SafariDriver.<init>(SafariDriver.java:51)
... 14 more
18:42:43.408 WARN - Exception: Failed to connect to SafariDriver after 10161 ms
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'TODIGWS000993.local', ip: 'xx.xx.xx.xx', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.1', java.version: '1.8.0_25'
Driver info: driver.version: SafariDriver
I am setting up my own grid and I'm using the standalone jar files (2.44.0). I am running the hub and node via daemons using launchd and a .plist file for each respectively.
All other browsers (FF and Chrome) load and run the tests fine.
I followed the instructions listed by
https://code.google.com/p/selenium/issues/detail?id=7933#c33
and successfully, manually, installed webdriver extension into the safari 8 browser
Initially when running selenium jars via daemons this did not work. But when i stopped the daemons and ran the jars (with the same arguments) using the logged in user the safari driver error went away and the safari browser loaded and ran the test.
I have tried with the argument
-Dwebdriver.safari.noinstall=true
but still no progress.
Have also set the daemon to have the same env variables as the logged in user that did successfully run the test but this also did not work.
Basically, the same command works when ran via the logged in user but not via a daemon. Any help will be greatly appreciated.
/usr/bin/java -jar /usr/lib/selenium/selenium-server-standalone-2.44.0.jar -port 5555 -role node -hub http://localhost:4444/grid/register -nodeConfig /usr/lib/selenium-code/osx/node_config.json -Dwebdriver.chrome.driver=/usr/lib/selenium/chromedriver
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'TODIGWS000993.local', ip: 'xxxxxxxx', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.1', java.version: '1.8.0_25'
safari 8
Here are the logs from the safari driver:
18:40:41.78 [safaridriver.extension] Creating global session...
18:40:41.78 [safaridriver.extension.TabManager] Registering new tab
18:40:41.78 [safaridriver.extension.TabManager] Set command tab to hncoksu5irc9
18:40:41.78 [safaridriver.extension] Creating debug driver...
18:40:41.78 [safaridriver.extension] Waiting for connect command...
18:43:04.20 [safaridriver.extension.TabManager] Registering new tab
18:43:04.20 [safaridriver.extension.TabManager] Tab opened: wgoy5x4bmbnw
18:43:04.34 [safaridriver.extension.TabManager] Ignoring open window event
18:43:04.34 [safaridriver.extension.TabManager] Deleting entry for tab wgoy5x4bmbnw
18:43:04.89 [safaridriver.extension.Server] [wi8mei4r9u3q] Executing command: newSession
Thanks
I was facing the similar issue: createDriver
org.openqa.selenium.remote.UnreachableBrowserException: Failed to connect to SafariDriver after 10342 ms
To get it resolved after trying some things, I registered myself at the Apple Site for “Safari Developer Program” and generated a certificate to use in Safari. Installed the certificate in my Key-chain and added the Safari Extension to the browser.
Can refer the site for steps to proceed: https://rationaleemotions.wordpress.com/2012/05/25/working-with-safari-driver/
I am using software configurations like:
Selenium: selenium-server-standalone-2.43.1.jar
Safari: 7.1.3
Mac: 10.9.5
Even tested on latest Selenium 2.44.0 and Safari 8.0. This approach works.