WebDriver не может запускать тесты в Firefox 4 и выше

Недавно столкнулся со странной проблемой. Я использую WebDriver для автоматизации тестирования веб-приложения GWT. (Это проект Maven 3) Я выполняю тесты только для браузера Firefox. Все работает нормально, пока я использую Firefox 3.6.

Проблемы начинаются всякий раз, когда я пытаюсь запустить тесты с более новой версией Firefox, начиная с FF4 до FF8. Всякий раз, когда я запускаю свои тесты, все, что я получаю, это исключение элемента, не найденного для всего, что я пытаюсь найти, щелкнуть, прочитать и т. д. Любой поиск с использованием различных типов локаторов (идентификатор, имя класса, имя) приводит к:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"id","selector":"SOME_ID"}; duration or timeout: 31 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
...
Driver info: driver.version: RemoteWebDriver

Более того, это происходит только с моим приложением, потому что, когда я написал быстрый тест, который идет на google.com и ищет некоторые вещи, все работает хорошо.

Кто-нибудь сталкивался с подобной проблемой? Что-то не так с моим веб-приложением? Может надо что-то где-то изменить? Я просто не знаю, что и где? Может быть, для более нового firefox нужен какой-то профиль приложения gwt? Если это поможет, вот мой файл POM:

 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>WebTests</groupId>
<artifactId>WebTests</artifactId>
<version>1.0</version>

<!--START:repositories -->
<repositories>
    <repository>
        <id>selenium-repository</id>
        <url>http://selenium.googlecode.com/svn/repository/</url>
    </repository>
</repositories>
<!--END:repositories -->

<!--START:dependencies -->
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.13.0</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-parent</artifactId>
        <version>2.13.0</version>
        <type>POM</type>
    </dependency>

    <dependency>
        <groupId>org.concordion</groupId>
        <artifactId>concordion</artifactId>
        <version>1.4.1</version>
    </dependency>
    <dependency>
        <groupId>org.concordion</groupId>
        <artifactId>concordion-extensions</artifactId>
        <version>1.0.1</version>
    </dependency>

</dependencies>
<!--END:dependencies -->


person Arek    schedule 22.12.2011    source источник
comment
вы пробовали с selenium-java 2.16.0?   -  person Grooveek    schedule 06.01.2012
comment
Вероятно, это совпадение, но предыдущая версия Selenium RC (неизвестно, пока какая версия) поддерживала до Firefox 3.6.   -  person The Nail    schedule 07.01.2012
comment
К сожалению все так же.   -  person Arek    schedule 09.01.2012


Ответы (4)


У нас была такая же проблема в нашем проекте, также с использованием Maven и т. Д., Как и вы.

Я пробовал несколько версий Firefox, но кажется, что даже последняя версия селена не поддерживает Firefox выше версии 3.x.

Мы только что установили версию 3.x на наш сервер интеграции и живем с ней.

person Bohemian♦    schedule 08.01.2012
comment
спс за ответ, похоже не только у меня такая проблема - person Arek; 09.01.2012

Когда вы обновляете firefox, возможно, произошли изменения в именах функций или классов, которые вы забыли изменить.

Вы пробовали свой код в Google Chrome?

person Adel Boutros    schedule 02.01.2012

Я бы порекомендовал обновиться до более новой Selenium — из-за тесной интеграции с браузером WebDriver чувствителен к изменениям в ABI.

person Rostislav Matl    schedule 08.01.2012
comment
Что именно мне нужно обновить? Я попробовал свой код также с версией селена 2.16.1. Я думаю, это самый новый? Все еще такой же. Можете ли вы предоставить мне образец файла POM, который вам подходит? - person Arek; 09.01.2012
comment
Итак, вы обновились - я видел 2.13 в вашем файле pom. У меня сейчас нет доступа к моему примеру. Вы уверены, что идентификаторы в вашем приложении не изменились? Вы пытались запустить Firefox с Firebug, поставить приложение на длительное ожидание и проверить DOM? - person Rostislav Matl; 09.01.2012
comment
Что ж, я попробовал это снова сегодня, и теперь даже на сайте Google я постоянно получаю NoSuchElementException. Очень простой код: @Test public void shouldOpenGoogle() { WebDriver webDriver = new FirefoxDriver(); webDriver.get(google.com); webDriver.findElement(By.name(q)); webDriver.findElement(By.id(searchText)).sendKeys(asd); } - person Arek; 09.01.2012

Я снова попробовал немного другой подход. Тем не менее, это то же самое, страница запускается просто отлично, и всякий раз, когда я пытаюсь найти какой-либо элемент, она терпит неудачу с отсутствием исключения элемента. То же самое в Firefox 4.0 и выше, а также в IE 7,8.

Ну, я думаю, что я просто вернусь к 3.6 и буду жить с этим :)

person Arek    schedule 09.02.2012