Удаленная настройка Selenium Webdriver

У меня есть selenium-server-standalone.jar, работающий на моей локальной машине, и тесты, которые я хочу выполнить, скомпилированы на моей удаленной машине, но я понятия не имею, как заставить тесты подключиться к машине, на которой будет работать браузер. Любая помощь приветствуется.

Обновление: на моем локальном компьютере (на котором я буду запускать браузер) я запустил

java -jar selenium-server-standalone-2.25.0.jar -mode hub

на моей удаленной машине (с которой я буду запускать тесты) я запустил

java -jar selenium-server-standalone-2.25.0.jar -role webDriver -hub http://**My ip*:4444

мой код содержит следующее:

 @Before
    public void setUp() throws Exception {
            Desi,redCapabilities 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));

Я использую Linux и мои тесты написаны на Java

 Gearoid Murphy11 окт. 2012 г., 11:41
На каком языке написаны ваши тесты на селен?
 djangofan12 янв. 2015 г., 17:03
Я бы не рекомендовал менять неявное ожидание. Оставив значение по умолчанию 0 даст вам более типичное поведение. Большинство людей используют FluentWait, например WebDriverWait, чтобы обеспечить более длительное время ожидания. Не изменяйте его на «20» секунд.
 confusified11 окт. 2012 г., 12:27
Мои тесты написаны на Java

Ответы на вопрос(1)

как я решил эту проблему. Я получил ВМ (виртуальную машину) с установленным jdk и сервером Selen, работающим на ВМ. Виртуальная машина имеет IP: 192.168.4.52. Я подключился к ней через (RDC-подключение к удаленному рабочему столу). На нем установлен нужный браузер (firefox 15). Откройте браузер. Отключены все обновления и другие всплывающие окна.

У меня есть пакет тестов на селен на моей локальной машине. И я запускаю их на своей виртуальной машине. Настройка Selenium следующая:

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();
    }

.....

этот фрагмент кода будет запускать все тесты селена на удаленной машине. в строкеdriver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); Вы просто должны указать IP своей машины, и это должно работать.

Надеюсь, это поможет вам.

 confusified11 окт. 2012 г., 12:42
Итак, работает ли seleniuim-сервер на машине с браузером или с тестами? Мои тесты запускаются из командной строки на компьютере, на котором я ssh, и мой браузер находится на моей локальной машине
 eugene.polschikov11 окт. 2012 г., 15:16
в моем подходе (в текущем проекте) сервер Selen работает на виртуальной машине (удаленная машина), а браузер также на виртуальной машине (удаленная машина). Набор тестов находится на моей локальной машине, но я собираюсь зафиксировать его в репозитории, добавить задачу в Hudson-jenkins, чтобы вынуть их из репозитория и запустить удаленно. С уважением
 vikramvi05 дек. 2017 г., 14:50
Вы можете сделать это с помощью Docker-контейнера для браузера Chrome. Ссылаться наunderthehood.meltwater.com/blog/2016/11/09/... а такжеgithub.com/SeleniumHQ/docker-selenium

Ваш ответ на вопрос