unable to using winapp - selenium

I am unable to run the code
capabilities.setCapability("app", "C:\\Windows\\System32\\calc.exe");
CalculatorSession = new IOSDriver(new URL("http://127.0.0.1:4723"), capabilities);
this code opens the calculator app but it say IOSDriver is wrong
Original code
I changed just two lines of the code
Software: Java, Eclipse, WinappDriver
I am automating Windows application in Windows 10

I solved the above problem updating the driver manual rather than taking the auto-suggestion version in maven

Related

where chromedriver installed by Visual studio nuget

I am newbie and want help please.
I am trying on selenium to automate actions to a mobile webpage. (Don't care about landscape, but just reference to its code) I am referring to this post C# Selenium Mobile Emulation in landscape
ChromeDriverService service = ChromeDriverService.CreateDefaultService(#"C:\chromedriver");
I'm on windows7, using visual studio. I installed chromedriver through nuget package manager. I dont know what to replace on #"C:\chromedriver" as I don't know where chromedriver is on my machine.
Below is what I git diff from package.config, but does not seem help.
+
+
+
+
Any help is appreciated. Thank you very much.
If you look at
https://www.nuget.org/packages/Selenium.WebDriver.ChromeDriver/
Install Chrome Driver (Win32, macOS, and Linux64) for Selenium WebDriver into your Unit Test Project.
"chromedriver(.exe)" is copied to bin folder from package folder when the build process.
NuGet package restoring ready, and no need to commit "chromedriver(.exe)" binary into source code control repository.
So you should use
ChromeDriverService service = ChromeDriverService.CreateDefaultService(#"chromedriver.exe");

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.

Is there a Selenium WebDriver available for the Microsoft Edge browser?

As of the date of this post the name "Microsoft Edge" has just been officially announced as the default browser for the new Windows 10.
It may be premature to ask but I would like to know if a new Selenium WebDriver is available for it and if not, if there is any telling how long we might expect to wait until we see one developed?
(A technical preview of Windows 10 has already been out so this doesn't seem like a foolish question to me.)
Yes, there is a WebDriver implementation for Microsoft Edge. Its initial availability was announced on 23 July 2015. Language bindings in the Selenium open source project have been updated to take advantage of this driver implementation, and those updates have been released in Selenium 2.47. Note that the Java language bindings were re-released as 2.47.1 to correct an initial issue. The initial implementation has limited functionality, but Microsoft is committed to bringing a fully functional driver implementation to fruition, so updates will be forthcoming.
Microsoft has provided MicrosoftWebDriver which can be used for Edge browser.
Correct version of MicrosoftWebDriver needs to be downloaded, based on the OS Build number
Go to Start > Settings > System > About and note down the OS Build number.
Download the proper version of the driver from this link - https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
If the file that's downloaded is .msi, then install it to get the .exe driver. For one of the release, direct .exe can be downloaded.
Once the MicrosoftWebDriver.exe is downloaded, we can use it in our test script using either System.setProperty("webdriver.edge.driver", "driver location") or using environment variable
The sample script would be like this -
System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft Web Driver\\MicrosoftWebDriver.exe"); //put actual location
WebDriver driver = new EdgeDriver();
driver.get("your link");
Refer this article for detailed information - http://automationtestinghub.com/selenium-3-launch-microsoft-edge-with-microsoftwebdriver/
The Microsoft Edge driver for Selenium can be automatically downloaded (for Java) using the library webdrivermanager as follows:
EdgeDriverManager.getInstance().setup();
The variable webdriver.edge.driver is also exported by webdrivermanager with the proper path of MicrosoftWebDriver.exe.
"in case it wasn't clear, Microsoft Edge will have WebDriver support. It isn't available today, but is in development Q's? #msedgesummit" tweet from John Jansen the who is - "Microsoft Engineer. Principal Software Engineer (nee Test) Lead on Project Spartan (nee Internet Explorer)."
You can find him on twitter #thejohnjansen and wait for an announcement :)
Prerequisite: Windows 10 is installed on your machine
Download the specified Microsoft WebDriver server version for your build (In my case it is MicrosoftWebDriver.exe for the Operating System: Windows 10 Pro 64-bit (10.0, Build 14393))
Selenium WD Java code for MS Edge is as follows:
System.setProperty("webdriver.edge.driver", "D:\Ripon\MicrosoftWebDriver.exe");
driver = new EdgeDriver();
As of EdgeHTML version 18 (which arrived with Windows version 1809), there is no longer a standalone driver download. You can obtain the new driver in one of two ways:
Start - type "Manage optional features" - Click "Add a Feature" - Find "WebDriver"
Entering the following on an elevated command prompt - "DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0"
https://blogs.windows.com/msedgedev/2018/06/14/webdriver-w3c-recommendation-feature-on-demand/#Qj75uxuFHccPmCW5.97
Legacy versions are still available from:
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Update:
It appears that version 18 is now legacy and we are back to installing a separate webdriver since the move to Chromium. The link directly above this will still take you to the correct drivers page.
Thanks for your help, I was blocked with my tests, searching for a "EdgeDriver.exe" asked by the selenium EdgeDriver implementation and only find the MicrosoftWebDriver.
I have made this in C# if this can help someone, based on your previous answers :
First, you need to download the MicrosoftWebDriver nuget package, this one will only make a copy of the MicrosoftWebDriver.exe into your destination folder on compilation then
private readonly string _localDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Environment.SetEnvironmentVariable("webdriver.edge.driver", _localDir + "MicrosoftWebDriver.exe");
var driver = new EdgeDriver();
Hope this can help someone.

Moving from Selenium IDE to what?

I have been given the following job from my boss:
three years ago a former employee created selenium tests for our project and committed them via eclipse
now I have to update the tests due to the fact that the software has changed through time.
I created new IDE tests, instead of editing the old ones.
I have committed them through CVS in the project folder and I access them via a browser (selenium has some folder in the project)
when I run these tests via IDE, they run fine, but when I run them via the TEstRUnner that is in the old selenium installation, there are a lot of errors.
Should I install new version of Selenium in the project folder and what should it be?
Or should I just run the tests from IDE instead? (I read somewhere that TestRunner will be deprecated)
How are tests made in IDE run through Web Driver?
Have you looked at Selenium Builder? It supports migrating existing scripts, works well with Sauce Labs and there is also a Jenkins plugin](https://wiki.jenkins-ci.org/display/JENKINS/Selenium+Builder+Plugin) available.
Tests built using Selenium IDE are built using Selenium RC (1.0), and selenium WebDriver is the foundation of Selenium 2.0. Selenium has a migration document for this transition. In moving to Web Driver, you might be required to code the tests yourself, rather than using the point and click Selenium IDE.
Additionally, there is a hybrid approach for using Selenium RC code on Selenium Web Driver: http://docs.seleniumhq.org/docs/03_webdriver.jsp#alternative-back-ends-mixing-webdriver-and-rc-technologies
In order to run the Web Driver tests, you will need to have a selenium server or local browser to execute these tests. Some examples are SauceLabs, Selenium Grid, a standalone Selenium Server, or I believe you allow Web Driver to directly control the browser on the computer executing the code.

Selenium difference on windows / linux

I have a JUnit test that imports org.openqa.selenium.interactions.Actions.
Specifically, I am using dragAndDrop, outlined here
When I run the Junit test on my local machine (windows), it runs perfectly. However, when the same test is run on a Linux machine, the method does not work. Everything else in the test runs fine but the dragAndDrop method does not work.
A co-worker said that it might have something to do "XVFB" but could not elaborate much.
Any comments appreciated, thanks!
I am assuming you are using Firefox on Linux? Native events are disabled by default for Firefox on Linux. Advanced Actions API need native events. Try enabling them and then check your test on linux like below,
FirefoxProfile profile = new FirefoxProfile();
profile.setEnableNativeEvents(true);
WebDriver driver = new FirefoxDriver(profile);