2011-05-23 45 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> 
相关问题