2011-05-23 106 views
1

我只是試圖讓與Firefox 4基本Selenium2Example工作使用Maven來獲取硒罐子:如果我去那裏在Maven中使用Selenium 2(Selenium WebDriver)的「官方」方式是什麼?

public class Selenium2Example { 
    public static void main(String[] args) { 
     // Create a new instance of the Firefox driver 
     // Notice that the remainder of the code relies on the interface, 
     // not the implementation. 
     WebDriver driver = new FirefoxDriver(); 

     // And now use this to visit Google 
     driver.get("http://www.google.com"); 

     // Find the text input element by its name 
     WebElement element = driver.findElement(By.name("q")); 

     // Enter something to search for 
     element.sendKeys("Cheese!"); 

     // Now submit the form. WebDriver will find the form for us from the element 
     element.submit(); 

     // Check the title of the page 
     System.out.println("Page title is: " + driver.getTitle()); 

     //Close the browser 
     driver.quit(); 
    } 
} 

http://code.google.com/p/selenium/wiki/UsingWebDriver,它說我應該嘗試這樣的依賴性:

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium</artifactId> 
    <version>2.0b3</version> 
</dependency> 

但是最新的jar可以在沒有版本庫的版本中找到,最後的版本可以找到(所有依賴項都可以找到)是「2.0a4」(2.0a5到2.0a7和2.0b1到2.0b3有缺少主要jar或缺少依賴關係),而這個「2.04」版本沒有合適的類來使這個例子工作。

如果我去那裏:http://seleniumhq.org/docs/03_webdriver.html#chapter03-reference,它說我應該使用這種依賴性:

<dependency> 
    <groupId>org.seleniumhq.webdriver</groupId> 
    <artifactId>webdriver-firefox</artifactId> 
    <version>0.9.7376</version> 
</dependency> 

它使例子編譯,但此版本還沒有被2009年10月更新,它不運行與Firefox 4(見http://repo1.maven.org/maven2/org/seleniumhq/webdriver/webdriver-firefox/

如果我去那裏http://seleniumhq.org/download/maven.html,它說我應該嘗試這樣的:

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-firefox-driver</artifactId> 
    <version>...</version> 
</dependency> 

但2.0b3版本也無法工作(缺少依賴關係)。以下是錯誤消息:

23/05/11 22:09:07 CEST: Build errors for first-webdriver-test; org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project first-webdriver-test: Unable to get dependency information for org.apache.httpcomponents:httpcore:jar:4.0.1: Failed to process POM for org.apache.httpcomponents:httpcore:jar:4.0.1: Non-resolvable parent POM org.apache.httpcomponents:httpcomponents-core:4.0.1 for org.apache.httpcomponents:httpcore:4.0.1: Failed to resolve POM for org.apache.httpcomponents:httpcomponents-core:4.0.1 due to Missing: 
---------- 
1) org.apache.httpcomponents:httpcomponents-core:pom:4.0.1 
---------- 
1 required artifact is missing. 

for artifact: 
    org.apache.httpcomponents:httpcomponents-core:pom:4.0.1 

from the specified remote repositories: 
    central (http://repo1.maven.org/maven2, releases=true, snapshots=false) 

我不知道這個錯誤的意思,因爲我可以在這裏找到所需的POM:http://repo1.maven.org/maven2/org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom

所以唯一的辦法,我可以讓這個例子的工作現在,手動下載2.0b3罐子。

有沒有人成功地使它與Maven協同工作?

回答

1

對我來說,這是工作(使用Maven 2.2.1):

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium</artifactId> 
    <version>2.0b3</version> 
    <type>pom</type> 
    </dependency> 

注意這一行:<type>pom</type>

此外,我不得不添加上了JUnit庫的依賴得到它通過一些絕對的例外,但你可能不需要這個。

+0

你是完全正確的,它的工作原理!我以爲我已經嘗試添加「pom」了。我向官方維基(http://code.google.com/p/selenium/wiki/UsingWebDriver)添加了一條評論 – Tristan 2011-05-25 18:49:57

+0

錯誤的信息您正在描述如何僅拉出硒堆的一部分,並作爲結果你是不拉下依賴關係。這不是「官方」的做法。 – Ardesco 2011-05-26 09:59:03

+0

我從來沒有聲稱這是做「官方」的方式。我只是說它對我有用。 – AsGoodAsItGets 2011-05-26 16:29:31

-1

我使用:

<dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-remote-control</artifactId> 
     <version>2.0b3</version> 
</dependency> 

它曾經是硒2.0b2,但他們在改變B3的命名結構,如果我沒有記錯。

編輯

更新硒2.0RC3如下:

對於硒服務器軟件包的一切,是從http://code.google.com/p/selenium/downloads/list

<dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-server</artifactId> 
      <version>2.0rc3</version> 
</dependency> 

下載的一切在硒java包即可從http://code.google.com/p/selenium/downloads/list下載

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

神器ID的「硒的遠程控制」「硒」不復存在。這是官方立場,http://seleniumhq.org/download/maven.html已經相應更新。

這應該是對maven結構的最終更改。

+0

selenium-remote-control =「Selenium RC」= Selenium 1.我試圖使用Selenium 2 = Selenium/Webdriver – Tristan 2011-05-25 18:29:00

+0

你錯了。硒1和硒2都在相同的代碼庫中,這是如何獲得所有硒2的二進制文件(版本號是線索) 其實嘗試做我給你以上的東西,然後檢查你的依賴關係,你會看到各種2.0b3驅動程序的jar文件(例如selenium-firefox-driver-2.0b3,selenium-chrome-driver-2.0b3等),當原始alphas出來時,我從Selenium 1切換到Selenium 2。我正在使用的回購是 http://repo1.maven.org/maven2。 – Ardesco 2011-05-26 08:20:17

+0

另外幾條鏈接首先討論了關於selenium devs郵件列表的討論:https://groups.google.com/d/topic/selenium-developers/QY3LS5sFIdM/discussion – Ardesco 2011-05-26 08:23:07

2

由於RC2,你只需要:

 <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium</artifactId> 
      <version>2.0rc2</version> 
      <type>pom</type> 
     </dependency> 
1

隨着RC3你需要:

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

包括所有罐子

-1

對於我來說,這個工程:

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.8.2</version> 
</dependency> 

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

    <dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-firefox-driver</artifactId> 
    <version>2.29.1</version> 
</dependency> 

<dependency> 
    <groupId>xml-apis</groupId> 
    <artifactId>xml-apis</artifactId> 
    <version>1.4.01</version>    
</dependency> 
相關問題