Как я могу настроить selenium webdriver для использования пользовательской настройки firefox для тестов?

Я использую Ubuntu 11.04 и селен 2.9.0 Вот как это настроено в моем корневом pom:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>2.9.0</version>
    <scope>test</scope>
</dependency>

При попытке запустить тест я получаю исключение:

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
*** LOG addons.xpi: startup
*** LOG addons.xpi: Ignoring file entry whose name is not a valid add-on ID: > /tmp/anonymous3804893394247066972webdriver-profile/extensions/webdriver-staging
*** LOG addons.xpi: checkForChanges
*** LOG addons.xpi: No changes found

    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:95)
    ....

Насколько я понял, проблема в том, что драйвер firefox, который использует селен, несовместим с версией браузера. Принимая во внимание частые обновления выпусков Firefox, будет сложно поддерживать мою локальную тестовую среду.

Поэтому я решил установить статический Firefox с последней известной мне совместимой версией и использовать селен с ним, сохранив при этом свой Firefox по умолчанию (я не должен его удалять).

Итак, я не уверен, как настроить конфигурацию селена, чтобы он работал со статическим firefox. Возможно, я должен настроить свое приложение для получения пути к двоичному файлу firefox для использования драйвером? Я хотел бы знать, нужно ли еще что-нибудь.

** Edit

Я использую свойства конфигурации для инициализации соответствующего веб-драйвера:

public abstract class SeleniumTestBase {

    ...

    public final void setUp() throws Exception {
        String driverClass = getConfigurationProperty("selenium.webDriverClass");
        driver = (WebDriver) Class.forName(driverClass).newInstance();
        ...
        doSetUp();
    }

    public void doSetUp() {
    }

    ...
}

Свойство "selenium.webDriverClass" управляется pom.xml, поэтому разные профили могут иметь разные значения . В настоящее время создается экземпляр FQN класса драйвера.

8
задан Ivaylo Slavov 23 June 2012 в 11:14
поделиться