VS 2013 - Unable to run Coded UI test in Firefox browser - selenium

I had version of:
Visual Studio 2013
WebDriver.ChromeDriver.win32 2.2.0
selenium-dotnet-strongnamed-2.35.0
Firefox 24
But when I run Coded UI test I had received the next error:
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestException:
Failed to start up socket within 45000 ms
or the next error:
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestException: An
error occurred while connecting to Firefox
I folowed instructions of here: Selenium components for Coded UI Cross Browser Testing
Please help to resolve this issue.

Two things: update Selenium to v2.37 (v2.35 doesn't support Firefox 24) and don't use the strong-named assemblies unless you have to.
I mean, really, have to.
They create more problems then they are worth.

Related

Selenium performance with InternetExplorerDriver and IE11

I am facing a very slow response when running my scripts on IE11. Sometimes, I get FocusWindowsClosed, ElementIsNotClickable. I have changed the zoom settings for all zones, created feature BFCACHE for IE in feature control, added capabilities into my code but nothing works for me. If anyone has any idea why I am facing this issue. Do i need to downgrade window or IE versions? I have also downloaded the same version of selenium client server with same IEDriver which is (3.8.0).
To start with, Selenium v3.8.0 of 2017-11-30 is more then 2 years older. Even the error trace logs would be difficult to debug. So as per best practices you may like to:
First of all, the fact that ...64-bit IEDriverServer executable populate the input fields with the character sequence very slowly as compared to 32-bit IEDriverServer executable.... is a known issue.
You can find a detailed discussion in IEDriverServer sends text very slowly using Selenium to the search field
Ensure the Internet Explorer Protective mode setting are properly configured.
Ensure the Zoom level is properly configured.
Ensure ignoreProtectedModeSettings is properly confugured.
Ensure setting up selenium to work with internet explorer.
Ensure FEATURE_BFCACHE is properly confugured.
Upgrade Selenium to current levels Version 3.141.59.
Upgrade IEDriverServer to latest IEDriverServer v3.150.1 level.
Note: As per best practices as Selenium Client and InternetExplorerDriver are released in sync and you must try to use both the binaries from the same major release.
Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
Execute your #Test.
Always invoke driver.quit() within tearDown(){} method to close & destroy the WebDriver and Web Client instances gracefully.
tl;dr
A couple of references:
Internet Explorer 11 getting stuck randomly while executing tests through IEDriverServer and Selenium
HTTP Status: '500' -> incorrect JSON status mapping for 'timeout' (408 expected) while clicking element with IEDriverServer Selenium and Java

chromedrive.exe has stopped working

Am running the automation suite on the below configuration
Selenium: 3.11.0
Chrome: 65.0.3325.181
Chromedriver: 2.37
JDK: 1.8
OS: Windows 7 Enterprise(64 -bit)
On mid of the execution am getting an error as Chromedriver.exe has stopped working and the execution got stopped.
To resolve this, have tried with different version of selenium and chromedriver. Couldn't able to resolve the issue.
Issue Image
ChromeDriver Log: Log
Update:
Am getting this error whenever my code triggers the driver.get(URL) or driver.navigate().to(URL) command. FYI, am not sure this gonna help or not. Just to give more insight, my code will access two sites, in that one is https and another one is http. Am getting the exception whenever it access the http site.

Using Geb and the Edge WebDriver I get failed to create driver from callback

In my current automation project I am attempting to automate my testing based on various browsers using Gradle and Geb. I've been able to get all browsers working with the exception of Microsoft Edge. Currently I am seeing:
geb.driver.DriverCreationException: failed to create driver from
callback
I've verified that I am downloading the MicrosoftWebDriver.exe to the expected directory in my project but I am not sure if I am missing something in my driver setup:
driver = {
EdgeOptions options = new EdgeOptions()
options.pageLoadStrategy("eager")
edgeDriver = new EdgeDriver()
return edgeDriver
}
I am fairly new to Geb and Gradle as a whole so it is entirely possible I am missing something. Any help would be appreciated.
As far as I am aware You need more than just the exe to use the MS Webdriver. The machine that's executing the Webdriver code will need to have one of the following MSI's installed:
For Windows 10 Build 10240, install this version of Microsoft WebDriver.
For Windows 10 Fall 2015 Update, install Microsoft WebDriver Fall 2015 Update.
For the latest preview build from the Windows Insider Program, install this version of Microsoft WebDriver.
I think the MSI changes some switches in Edge to enable it to be controlled by Web driver.
Turns out that my issue was due to having just upgraded my local machine to Windows 10 and the Microsoft Web Driver preview build requires the Fall 2015 update which is unavailable to me for 31 days.

Selenium WebDriver - FirefoxDriver error: Failed to start up socket within 45000

I'm getting this error:
tests.IntegrationTests.Selenium.RegisterAndLogin (TestFixtureSetUp):
SetUp : OpenQA.Selenium.WebDriverException : Failed to start up socket within 45000
when I carry out the following in my code:
using System;
using System.Text;
using NUnit.Framework;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;
namespace ekmProspector.tests.IntegrationTests.Selenium
{
[TestFixture]
public class RegisterAndLogin
{
private IWebDriver driver;
[TestFixtureSetUp]
public void Init()
{
driver = new FirefoxDriver();
}
}
Can't get much simpler really, but the error is fatal. Any ideas?
Solution is as easy as pie :)
Right Click on your .Net (C#) Project and select 'Manage NuGet Packages ...' option, as shown below:
Then select Selenium specific packages, they need updated so update them.
The updated packages will be updated automatically.
It works for me.
I got this working in the end, I removed all the package sub-folders which were added by NuGet when installing WebDriver and decided to added these manually. Created a 'lib' folder, then unzipped the selenium binaries into that folder. Then added references to all the binaries. Seems to be fine now.
Versions
FF v48
Selenium Webdriver v2.53.1
Windows 7 (x64)
.Net 4.0 and .Net 4.5
Trying the fixes
As per #jaffa I manually added the following refereces and got the problem:
WebDriver.dll v2.53.1
WebDriver.Support.dll v2.53.1
I then unreferenced them and followed #HassanRahman and used NuGet:
WebDriver.dll v2.53.1
WebDriver.Support.dll v2.53.1
Still same error.
OpenQA.Selenium.WebDriverException : Failed to start up socket within 45000
Troubleshooting
I had a hunch and decided to downgrade from targeting .Net 4.5 to .Net 4.0 (Full not client profile) and the error changed to:
An unhandled exception of type 'OpenQA.Selenium.WebDriverException' occurred in WebDriver.dll
Additional information: Cannot find Firefox binary in PATH or default install locations. Make sure Firefox is installed. OS appears to be: Vista
I wondered if this is why people who reinstalled FireFox got it to work again?
Somewhere there has to be a set of Registry Keys or an Environment Variable to find FireFox's ApplicationStartupPath. You can see some of those paths in this ProcessMonitor trace:
In the screenshot above you can see the app (AstrobLabe) I'm using running this line of code:
using (IWebDriver driver = new FirefoxDriver(ffprofile))
It causes a search for FireFox v48 and its looking in the wrong directory:
C:\Program Files (x86)\Mozilla FireFox\FireFox.exe
On my system FireFox is installed in:
C:\Program Files (x86)\Mozilla\Firefox\FireFox.exe
Anyway finding and correcting this issue (Cannot find Firefox binary in PATH or default install locations) is for someone else to fix, I just copied the Firefox directory to Mozilla FireFox.
But then it goes back to the original error:
An unhandled exception of type 'OpenQA.Selenium.WebDriverException' occurred in WebDriver.dll
Additional information: Failed to start up socket within 45000 milliseconds. Attempted to connect to the following addresses: 127.0.0.1:7055
Solution
Then I came across this answer which says that FireFox v46 works with Selenium 2.53:
Which Firefox version is compatible with Selenium 2.53.0?
When I downgraded I saw that FFv46 installs to:
C:\Program Files (x86)\Mozilla FireFox\FireFox.exe
So check if your FF install is in this location - which based on the ProcessMonitor Trace Selenium cant find:
C:\Program Files (x86)\Mozilla\Firefox\FireFox.exe
I solved this by completely removing firefox and all profiles and reinstalling.
I found that I was able to to fix this problem in Firefox Selenium by updating my Selenium packages in NuGet.
But it still leaves you with the problem of manually updating the Chrome and IE drivers if similar problems arise.
I also faced the problem while running the the test in NUnit. I found many solution to remove or degrade your Firefox.But i solved this in another way i remove all the references related to web drivers and add the upgrade web driver to the Solution.
In my application the webdriver version was 2.24 so i replaced with 2.43 and now my test are running fine.
For anyone finding this question more recently (2015-02-27), there seems to be an open issue with compatibility with Selenium and Firefox 36:
https://code.google.com/p/selenium/issues/detail?id=8399
You can download Firefox 35 here: http://www.filehippo.com/download_firefox/59889/
I had this issue with latest version of both Firefox (42) and Selenium (2.48.2). Uninstalling and re-installing (via Nuget) fixed the issue for me.
I found that running an older version of resharper (9.2) failed to work with the latest nunit and that caused selenium to timeout.
The temporary solution was to disable resharper (Tools -> Options -> Resharper -> Disable), the permanent solution is upgrading resharper.
None of the previous answers clearly state that specific versions of Selenium WebDriver work with specific versions of Firefox. This SO question tells us that the Webdriver/Firefox compatibility matrix is here.
The other thing worth stating is that Firefox tends to update itself more-or-less automatically when new versions become available, depending on settings. Since Webdriver does not update itself automatically, this opens up the possibility that the Webdriver/Firefox compatibility will unexpectedly break and your test scripts will stop running when Firefox updates itself to a version that is not supported by your Webdriver version. I suspect that the answers above that instruct users to re-install Webdriver using Nuget simply pick up the newest Webdriver which works with the newest Firefox that just installed itself on your machine.
To prevent Firefox from upgrading itself, click on the menu button in Firefox (three horizontal bars, upper-right corner), choose "Options", choose "Advanced" on the left menu, choose the "Update" tab at the top and you'll see a set of radio buttons under "Firefox updates". Choose a setting other that "Automatically install updates".
Reinstalling FF browser fixed the issue.
Which version of Selenium IDE you are using? Try downgrading the Firefox version. The release notes of selenium IDE is mentioned in below link.
https://code.google.com/p/selenium/wiki/SeIDEReleaseNotes
Hope this helps.
1) Downgrade your firefox to < 19 because if i remember correctly WebDriver 2.33 support maxim Firefox 19
2)
FirefoxProfile profile = new FirefoxProfile();
profile.Port = 9966;
Global.Driver = new FirefoxDriver(profile);
P.S. I'm using firefox 16 to not have this issue
I have same issue with selenium version 2.37.xx with Firefox browser 42.0
After updating selenium version 2.48.2 issue is fixed
I was working with on C# with WebDriver 2.53/Firefox 46. Tried reinstalling things, manually re-adding etc but downgrading Firefox to 43 fixed it for me.
Updating through "NuGet" is what helped me. Firefox 47 and Selenium Webdriver 2.53 wasn't working. Checking the selenium site, it still shows "2.53" as their latest. Checking "NuGet" though, I saw there was a "2.53.1" version available. Installing that version is what got my Firefox 47 to work again.
Error image
See the error image, I uninstalled completely and re-install version46, things solved.

Selenium WebDriver: Could not load file or assembly 'Newtonsoft.Json Version=4.0.2.0'

Selenium's webdriver gives me that error when trying to use the Chrome or IE driver.
I have got Selenium via Nuget, so it should be giving me the correct libraries. However, it seems to want a reference to Newtonsoft.Json 4.0.2.0 rather than 4.0.3 which is the one currently inside the NuGet package.
How do I get round this issue?
UPDATE
I got this working, in part trying to fix another problem. See my other post:
Selenium WebDriver - FirefoxDriver error: Failed to start up socket within 45000
It's the Nuget package. Selenium is relatively new to Nuget, and the team has been having problems building a package that can be used easily. The primary .NET developer has said that the 2.8.x Nuget package will be better. That's due out sometime this week.
you need to use x86 not ANY CPU, then will work. Your project is set to ANY CPU. Change it to x86.