Я использую Ubuntu 11.04 и selenium 2.9.0. Вот как это настроено в моей корневой поме:
<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, который использует selenium, несовместим с версией браузера. Учитывая частые обновления выпусков Firefox, будет сложно поддерживать мою локальную тестовую среду.
Поэтому я решил установить статический Firefox с последней известной мне совместимой версией и использовать с ним селен, сохраняя мой Firefox по умолчанию (я не должен его удалять).
Итак, я не уверен, как настроить мою конфигурацию селена, чтобы она работала со статическим firefox. Возможно, я должен настроить свое приложение, чтобы получить путь к двоичному файлу firefox для использования драйвером? Я хотел бы знать, нужно ли что-нибудь еще.
** Редактировать
Я использую свойства конфигурации для инициализации правильного веб-драйвера:
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 класса драйвера, который должен быть создан.