Я использую 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 класса драйвера.