Запуск Selenium с пользовательским профилем Firefox из Eclipse - PullRequest
2 голосов
/ 26 февраля 2010

Я запускаю тесты Selenium из Eclipse, но не могу загрузить собственный профиль Firefox.

Большинство источников предлагают мне запустить Selenium Server следующим образом:

java -jar selenium-server.jar -firefoxProfileTemplate </path/to/template/>

Но при запуске моего теста из Eclipse он этого не использует - тесты будут запускаться, если Selenium Server не работает.

Этот поток предлагает мне установить профиль в конструкторе DefaultSelenium:

Selenium RC - отключение файла cookie браузера

Но код, сгенерированный для меня Selenium IDE (плагин Firefox), не использует этот конструктор:

package com.example.tests;

import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;

public class Example extends SeleneseTestCase {
    public void setUp() throws Exception {
        setUp("http://www.example.com/", "*firefox");
    }
    public void testExample() throws Exception {
        selenium.open("/");
        selenium.click("//body");
    }
}

Где я должен установить параметры конфигурации DefaultSelenium? Или есть какой-то другой метод, который я могу использовать, чтобы загрузить свой собственный шаблон Firefox?

Спасибо! Stu

Ответы [ 2 ]

2 голосов
/ 05 января 2011

Я создал SeleniumTestCase, который запускает / останавливает сервер перед / после каждого тестового класса и запускает / останавливает экземпляр Selenium до / после каждого теста:

public class SeleniumTestCase {
    protected static Selenium selenium;
    protected static AppNavUtils appNavUtils;

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        SeleniumServerControl.getInstance().startSeleniumServer();
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        SeleniumServerControl.getInstance().stopSeleniumServer();
    }

    @Before
    public void setUp() throws Exception {
        // Replace "*chrome" with "*firefox" for Selenium > 1.0
        selenium = new DefaultSelenium("localhost", 5444, "*chrome", "http://localhost:8080/"); 
        selenium.start();
        appNavUtils = new AppNavUtils(selenium);
    }

    @After
    public void tearDown() throws Exception {
        selenium.stop();
    }  
}

SeleniumServerControl запускает и останавливает сервер:

public class SeleniumServerControl {
    private static final SeleniumServerControl instance = new SeleniumServerControl();

    public static SeleniumServerControl getInstance()
    {
        return instance;
    }

    private SeleniumServer server = null;

    protected SeleniumServerControl(){}

    public void startSeleniumServer() {
        if (server == null) {
            RemoteControlConfiguration rcc = new RemoteControlConfiguration();
            rcc.setPort(5444);
            //rcc.setFirefoxProfileTemplate(newFirefoxProfileTemplate)
            server = new SeleniumServer(rcc);
        }

        server.start();
    }

    public void stopSeleniumServer()
    {
        if (server != null) {
            server.stop();
            server = null;
        }
    }
}
1 голос
/ 27 февраля 2010

версия кода, которую вы имеете выше, предполагает, что вы выполняете свои тесты для локального хоста на порту 4444, поэтому в настройке у него 2 параметра.

Чтобы настроить eclipse для его запуска, вам необходимо обновить конфигурацию запуска. Это под

Run > Run Configurations 

Найдите элемент, содержащий селен, и добавьте приведенную выше конфигурацию, чтобы при запуске он поднял его и запустил.

Лично я просто запускаю сервер, когда начинаю работать, запуская пакетный файл, и уничтожаю его в конце дня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...