I have the selenium-server-standalone.jar running on my local machine, and the tests I want to run compiled on my remote machine, but I have no idea how I make the tests connect to the machine that will run the browser. Any help appreciated.
Update: On my local machine (the one I will be running the browser on) I ran
java -jar selenium-server-standalone-2.25.0.jar -mode hub
on my remote machine (that I will run the tests from) I ran
java -jar selenium-server-standalone-2.25.0.jar -role webDriver -hub http://**My ip*:4444
my code contains the following:
@Before
public void setUp() throws Exception {
DesiredCapabilities capability = DesiredCapabilities.firefox();
driver = new RemoteWebDriver(new URL("http://**My ip**:4444/wd/hub"),
capability);
baseUrl = "http://phy05:8080";
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
driver.manage().window().setSize(new Dimension(1920, 1080));
I am using Linux and my tests are written in Java
Selenium Remote Webdriver: It is an class that is used to execute the browser automation and to execute assessments in a distributed environment or on a remote computing device. In other words, It is a class that implements the WebDriver interface and this action is performed on the remote server.
Selenium WebDriver is purely object oriented API, whereas Selenium RC is less object oriented API. WebDriver is entirely based on object oriented programming languages like Java, C#, etc.
We do write like: Webdriver driver = new ChromeDriver(); ChromeDriver driver = new ChromeDriver(); but not like this: RemoteWebdriver driver = new ChromeDriver():
This driver instance has access to almost all the methods of WebDriver. This happens because every browser extends RemoteWebDriver and RemoteWebDriver implements WebDriver interface. We can still use those methods whenever it required for execution on respective browser only.
well. That's not a problem. I'd like to share how i resolved this issue. I got VM (virtual machine) with jdk installed and selenium server running on VM. VM has IP: 192.168.4.52 I connected to it through(RDC-remote desktop connection). Installed needed browser on it(firefox 15). Open browser. Disabled all the updates and other pop ups.
I've got selenium tests pack on my local machine. And I run them on my VM. Selenium setup is following:
import com.google.common.base.Function;
import com.thoughtworks.selenium.SeleneseTestBase;
import junit.framework.Assert;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.openqa.selenium.*;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.FluentWait;
import org.openqa.selenium.support.ui.Wait;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.NoSuchElementException;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
public class BaseSeleniumTest extends SeleneseTestBase {
static WebDriver driver;
@Value("login.base.url")
private String loginBaseUrl;
@BeforeClass
public static void firefoxSetUp() throws MalformedURLException {
// DesiredCapabilities capability = DesiredCapabilities.firefox();
DesiredCapabilities capability = DesiredCapabilities.internetExplorer();
driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability);
// driver = new FirefoxDriver(); //for local check
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
driver.manage().window().setSize(new Dimension(1920, 1080));
}
@Before
public void openFiretox() throws IOException {
driver.get(propertyKeysLoader("login.base.url"));
}
@AfterClass
public static void closeFirefox(){
driver.quit();
}
.....
this piece of code will run all the selenium tests on remote machine.
in the string driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability);
you simply should mention IP of your machine and this should work.
Hope this helps you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With