Выполнение тестов Selenium 2.0 Selenese через Google Chrome с использованием плагина Selenium-Maven - PullRequest
1 голос
/ 16 июня 2011

Я пытаюсь выполнить некоторые HTML-тесты Selenium 2.0 через плагин Selen Maven (версия 1.1) в Google Chrome (версия 12.0.742.100), и я получаю сообщение об ошибке, Невозможно вызвать метод indexOf из неопределенного , после попытки выполнить команду Open.

После поиска кажется, что мы должны выполнить наш исполняемый файл chrome с параметром - disable-web-security , который не являетсяЭто легко сделать с целью Селены.Похоже, что плагин позволяет нам указать путь к файлу для исполняемого файла chrome как часть параметра в плагине Selenium-Maven, но он не позволяет мне добавлять - disable-web-security на звонок.Если я попытаюсь это сделать, вы получите ошибку сборки maven.

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

Мой вопрос здесь, есть ли способ устранить ошибки, которые яуказал на Selenese тесты в Chrome с использованием плагина Selenium-Maven?Если нет, то как лучше всего подойти к этому, кроме преобразования тестов в тесты JUnits / TestNg.

См. Фрагмент моего файла POM ниже.

....
<properties>
    <selenium.version>2.0b3</selenium.version>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>selenium-maven-plugin</artifactId>
            <version>1.1</version>
            <dependencies>
                <dependency>
                    <groupId>org.seleniumhq.selenium</groupId>
                    <artifactId>selenium</artifactId>
                    <version>${selenium.version}</version>
                    <type>pom</type>
                    <exclusions>
                        <!-- prevent ant:ant versus org.apache.ant:ant collision -->
                        <exclusion>
                            <groupId>ant</groupId>
                            <artifactId>ant</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <id>Run-googlechrome-Script</id>
                    <phase>integration-test</phase>
                    <goals>
                        <goal>selenese</goal>
                    </goals>
                    <configuration>
                        <browser>*googlechrome</browser>
                        <suite>src/test/selenium/html/TestSuite.html</suite>
                        <startURL>http://localhost:5555/</startURL>
                        <results>${project.build.directory}/results/googlechrome-smoke-results.html</results>
                        <port>5555</port>
                        <timeoutInSeconds>5000</timeoutInSeconds>
                        <multiWindow>true</multiWindow>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
....

Спасибо,

Хуан

1 Ответ

1 голос
/ 21 июля 2011

Попробуйте нужные возможности - см. Здесь: http://code.google.com/p/selenium/wiki/ChromeDriver

Поэтому я бы предложил вам использовать что-то подобное в вашей функции @BeforeClass:

 @BeforeClass
 public static void createAndStartService() {
  service = new ChromeDriverService.Builder()
    .usingChromeDriverExecutable(new File("path/to/my/chromedriver"))
  DesiredCapabilities capabilities = DesiredCapabilities.chrome();
  capabilities.setCapability("chrome.switches", Arrays.asList("--disable-web-security"));
  WebDriver driver = new ChromeDriver(capabilities);

Кстати, лучший способ - сохранить chromedriver.exe в вашем подкаталоге maven / src

...