I am making a .Net Application and it uses Selenium to send messages from Whatsapp Web, I use the Chrome Driver with it and I want to know if I need to download the driver everywhere or if I can use it by implementing it into my application
You don't need for this you can use web driver manager for any browser.Webdriver manager
Related
Selenium Webdriver - For interacting directly with browser
Selenium RC - Interacts with browser through a Server
If i need to test remotely using Web-driver, i need to use Selenium Server
So when we say Selenium Server in third point, does it mean then the
same server used by Selenium RC?
Is selenium server already included with selenium RC? If need to do automation using selenium RC, do i need to download Selenium Server separately?
Selenium Remote Control (RC) and Selenium WebDriver both are test automation tools supporting different programming languages but come with some critical differences.
Selenium RC
Till a couple of years back Selenium RC was an important component in the Selenium test suite. It was the testing framework that enabled a QA or a developer to write test cases in any programming language in order to automate UI tests for web applications against any HTTP website. Selenium RC comprised of two parts:
Client libraries for the preferred Language Binding Art.
A server that launches and destroys web browsers automatically.
Selenium RC’s architecture was a bit complicated as:
Developer/QA personal needed to install and launch a separate application called Selenium Remote Control Server before running test scripts.
The Selenium RC server acted as a mediator between the browser and Selenium commands.
The sequence of execution was:
The Selenium RC server injected a Javascript program known as Selenium Core into the browser client.
Once the Selenium Core program was injected, it started receiving instructions from the RC server based on test scripts. Selenium Core executed all these instructions as JavaScript commands.
The web browser executed all the commands given by Selenium Core and returns the test summary back to the Selenium RC server.
But there were limitations as follows:
Selenium RC Server's architecture was pretty complicated.
Execution of test scripts was time-consuming as Selenium RC uses JavaScript commands as instructions to the browser which resulted in slow performance.
API’s were less object-oriented.
There was no support for headless browsers.
All these limitations of Selenium RC Server led to the development of the new robust automation framework Selenium WebDriver.
WebDriver
From Selenium perspective, the WebDriver Interface is similar like a agreement which the 3rd party Browser Vendors like Mozilla, Chrome, Internet Explorer, Safari, etc have to adhere and implement the same. This would in-turn help the end-users to use the exposed APIs to write a common code and implement the functionalities across all the available Browsers without any change.
This usecase
To execute your testcases:
Locally: Selenium Client (jars) which is a bunch of API's would suffice your need.
On Remote machines(Selenium Grid): Selenium Server would solve your purpose.
You can find a relevant discussion in What is difference between Selenium Standalone Server and Java selenium Jar files
I'm helping set up web testing frameworks for a team that runs web tests on a project that already supports Firefox and Chrome. They want to extend it to be able to test Microsoft Edge.
So far we've been using Selenium grid with Docker and Jenkins but only for Firefox and Chrome.
Is there a way to extend a set up like this for Microsoft Edge? Or is there a way to dockerize Micrsoft Edge testing?
I know there is a webdriver for Edge compatible with selenium grid but I've seen nothing about how to dockerize it.
I want to use Docker because it keeps all the Jenkins slaves clean and allows for controlled versions of browsers, and we can control multiple containers with Docker-Compose.
You can try to use WebDriver with Windows Insider to test web projects with MS Edge.
WebDriver is an emerging standard through which Web developers can write tests to automate Web browsers for site testing. It provides a programmable remote control for developing complex user scenarios and running them in an automated fashion against your website in a browser.
Reference:
Bringing automated testing to Microsoft Edge through WebDriver
Other useful links:
Automated browser testing on Microsoft Edge, Firefox and Chrome for free.
Free Testing on Microsoft Edge
I have done my automation in Robotframework and I am using many libraries like Selenium2Library, Sikuli Library, HTTP Library, OS library and few more.
When I am running test on Selenium Grid, it invokes the browser on node and runs those steps which are from Selenium.
However, it does not run commands from Sikuli Library. Is selenium grid capable of running keywords from different libraries?
No, the selenium grid only works with selenium. The selenium grid is a server much like a web server. It listens for specific commands, and performs those commands. It will only respond to commands from selenium clients.
When using Sikuly in Robot Framework it is necessary to first setup the external sikuly server and then connect to it from Robot Framework. Typically this is a localhost connection, but connecting to an external host is also possible.
When using Selenium Grid, a connection is made to an anonymous node and thus the host to which the Sikuly server is runnning as well. Did a quick check in google and found that getting the hostname/IP of the running node from the hub is possible. Using the code example here I think it should be possible to create a direct connection to the Sikuly server.
I'm able to do analytics testing using browsermob and selenium in my previous project, but 'm not able to do same with mobile web using appium and selenium.
Though m able to start the proxy server but not able to bind it with my mobile web.
Thanks
I'm closing this question as i got the answer. FYI its same as for desktop only we have to set ours mobile proxy to same before starting the test.
I have started a selenium server hub on a linux computer, and two selenium nodes, one on windows xp and the other on windows 7. Both nodes are registered to the hub and both of them have firefox, chrome and ie.
How can I specify the IP address to tell the the selenium server, that only the browser of the computer with that specific IP should be started? For example, I want to test a web application with firefox only in windows xp, not windows 7. How can I configure the webdriver capabilities, so that only firefox in windows xp will be started?
Thanks in advance.
All the webdriver capabilities are setup in the script. In the script you can specify what browser and operating system you want to use.
The most common way is the setCapabilitiy()
DesiredCapabilities cap = DesiredCapabilities.firefox();
cap.setBrowserName("firefox");
cap.setCapability("platform", "WINDOWS XP");
The only thing you cannot specify is the ip address of the node. It is seleniums job to choose any available configuration for your test.
If you want to separate the capabilities from the scripts then you can specify them in a separate json or xml file and load them when you start your tests.