web-dev-qa-db-ja.com

JavaベースのFirefox用Selenium WebDriverプロジェクトのMaven pom.xmlの例

Selenium WebDriverプロジェクトを通じてFirefoxを使用してJavaを自動化したいと思います。

SeleniumMavenも使用したことがないので、適切なMaven pom.xmlファイルを設定してプロジェクトを作成し、それをEclipseにインポートする方法に慣れていません。

http://docs.seleniumhq.org/docs/03_webdriver.jsp#introducing-webdriver でopera browser:

<?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>MySel20Proj</groupId>
    <artifactId>MySel20Proj</artifactId>
    <version>1.0</version>
    <dependencies>
        <dependency>
            <groupId>org.seleniumhq.Selenium</groupId>
            <artifactId>Selenium-Java</artifactId>
            <version>2.28.0</version>
        </dependency>
        <dependency>
            <groupId>com.opera</groupId>
            <artifactId>operadriver</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.opera</groupId>
                <artifactId>operadriver</artifactId>
                <version>1.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.seleniumhq.Selenium</groupId>
                        <artifactId>Selenium-remote-driver</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

このpom.xmlをFirefoxブラウザに適用する方法を教えていただけますか、Firefox 17と言ってください。

6
Thomas853

Selenium-Javaの依存関係を使用すると、すべてのブラウザですべてのJavaバインディングを取得できます。そのため、pomで既存のものから何も変更する必要はありません。変更されるのはドライバだけです。 OperaDriverではなく、driver = new FirefoxDriver()である初期化コード。

4
niharika_neo

https://github.com/Ardesco/Selenium-standalone-server-plugin から取得した基本的な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">

<groupId>com.lazerycode.Selenium</groupId>
<artifactId>maven-template</artifactId>
<version>1.0-SNAPSHOT</version>
<modelVersion>4.0.0</modelVersion>

<name>Selenium Maven Template</name>
<description>A Maven Template For Selenium</description>
<url>http://www.lazerycode.com</url>

<licenses>
    <license>
        <name>Apache 2</name>
        <url>http://www.Apache.org/licenses/LICENSE-2.0.txt</url>
        <distribution>repo</distribution>
        <comments>A business-friendly OSS license</comments>
    </license>
</licenses>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <Selenium.version>2.45.0</Selenium.version>
    <overwrite.binaries>false</overwrite.binaries>
    <browser>firefox</browser>
    <threads>1</threads>
    <remote>false</remote>
    <seleniumGridURL/>
    <platform/>
    <browserVersion/>
</properties>

<dependencies>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.Selenium</groupId>
        <artifactId>Selenium-Java</artifactId>
        <version>${Selenium.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.Selenium</groupId>
        <artifactId>Selenium-remote-driver</artifactId>
        <version>${Selenium.version}</version>
    </dependency>
    <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>phantomjsdriver</artifactId>
        <version>1.2.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.8</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<profiles>
    <profile>
        <id>Selenium-tests</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.Apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                    <version>2.3.2</version>
                </plugin>
                <plugin>
                    <groupId>com.lazerycode.Selenium</groupId>
                    <artifactId>driver-binary-downloader-maven-plugin</artifactId>
                    <version>1.0.7</version>
                    <configuration>
                        <rootStandaloneServerDirectory>${standalone.binary.root.folder}</rootStandaloneServerDirectory>
                        <downloadedZipFileDirectory>${project.basedir}/src/test/resources/Selenium_standalone_zips</downloadedZipFileDirectory>
                        <customRepositoryMap>${project.basedir}/src/test/resources/RepositoryMap.xml</customRepositoryMap>
                        <overwriteFilesThatExist>${overwrite.binaries}</overwriteFilesThatExist>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>Selenium</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.Apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>2.7.2</version>
                    <configuration>
                        <parallel>methods</parallel>
                        <threadCount>${threads}</threadCount>
                        <systemProperties>
                            <browser>${browser}</browser>
                            <screenshotDirectory>${project.build.directory}/screenshots</screenshotDirectory>
                            <remoteDriver>${remote}</remoteDriver>
                            <gridURL>${seleniumGridURL}</gridURL>
                            <desiredPlatform>${platform}</desiredPlatform>
                            <desiredBrowserVersion>${browserVersion}</desiredBrowserVersion>

                            <!--Set properties passed in by the driver binary downloader-->
                            <phantomjs.binary.path>${phantomjs.binary.path}</phantomjs.binary.path>
                            <webdriver.chrome.driver>${webdriver.chrome.driver}</webdriver.chrome.driver>
                            <webdriver.ie.driver>${webdriver.ie.driver}</webdriver.ie.driver>
                            <webdriver.opera.driver>${webdriver.opera.driver}</webdriver.opera.driver>
                        </systemProperties>
                        <includes>
                            <include>**/*WebDriver.Java</include>
                        </includes>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>integration-test</goal>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

この意志:

  • 必要なすべてのSeleniumライブラリをダウンロードする
  • スタンドアロンドライバーバイナリをダウンロードします(例:chromedriver、phantomJSなど)
  • PhantomJSdriverライブラリをダウンロードする
  • TestNGをテストフレームワークとして追加する
  • テストアサーションを明確にするためにすべてのHamcrestマッチャーを追加します( https://code.google.com/p/hamcrest/wiki/Tutorial を参照)

元のリンクは、POMだけではなく、必要な場合にチェックアウトして実行できる基本的なプロジェクト設定に移動します。

2
Ardesco

Firefox 17は2.28.0ではサポートされていませんでしたが、 Seleniumプロジェクトのホームページ を参照すると、新しい洞察が得られました-最新リリースは2.30.0したがって、これを更新します。

   <dependency>
        <groupId>org.seleniumhq.Selenium</groupId>
        <artifactId>Selenium-Java</artifactId>
        <version>2.28.0</version>
    </dependency>

これに:

 <dependency>
        <groupId>org.seleniumhq.Selenium</groupId>
        <artifactId>Selenium-Java</artifactId>
        <version>2.30.0</version>
    </dependency>

きれいにして、もう一度やり直してください。うまくいけば、それが役立ちます。ここでの一般的なアドバイスは、常に最新バージョンのSeleniumを使用することです。

1
Pavel Janicek

FirefoxDriver実装のみを使用するには、Selenium-Javaアーティファクトを使用する必要はありません。むしろ、Firefoxアーティファクトへの依存関係を追加するだけで済みます。次の依存関係をpom.xmlに追加します。

<dependency>
    <groupId>org.seleniumhq.Selenium</groupId>
    <artifactId>Selenium-firefox-driver</artifactId>
    <version>3.0.1</version>
</dependency>  
1
user7123229