【问题标题】:Configuration of Selenium 2 (WebDriver), using IE and upload file with WebDriverSelenium 2 (WebDriver) 的配置,使用 IE 并使用 WebDriver 上传文件
【发布时间】:2012-10-15 10:28:07
【问题描述】:

如何配置 Selenium WebDriver?我有使用 Selenium 和 Java 的自动化测试用例。现在我需要使用 WebDriver 自动上传和下载文件。我添加了 webdriver-common-0.9.7376.jar。我喜欢使用 Internet Explorer。我该怎么做?

我只是声明变量并使用驱动程序

private static WebDriver driver;
driver.findElement(By.id(upload)).sendKeys("file to be upload");

这对吗?

【问题讨论】:

  • 获取上传元素并输入文件名的原则是正确的。尝试后会发生什么?

标签: java internet-explorer file-upload selenium selenium-webdriver


【解决方案1】:

问题。 1:如何配置WebDriver?

Ans:有两种方法:1)仅添加“selenium-server-standalone-2.29.0.jar”

或者, 2)添加“selenium-java-2.29.0.jar”和位于“selenium-java-2.29.0\selenium-2.29.0\libs”文件夹中的所有jar

您可以分别从http://code.google.com/p/selenium/downloads/detail?name=selenium-server-2.29.0.ziphttp://code.google.com/p/selenium/downloads/detail?name=selenium-java-2.29.0.zip 下载“selenium-server-2.29.0.zip”和“selenium-java-2.29.0.zip”。 解压即可得到对应的jar文件添加。

问题。 2:如何实例化IE,如何上传文件?

Ans:java代码如下:

File file = new File("C:\\Program Files\\Internet Explorer\\iexplore.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
WebDriver driver = new InternetExplorerDriver();
driver.findElement(By.id("upload")).sendKeys("file to be upload");

如果"文件文件 = 新文件("C:\Program Files\Internet Explorer\iexplore.exe");"不起作用下载“IEDriverServer”并将该行替换为以下内容:

File file = new File("E:\\Ripon\\IEDriverServer_Win32_2.29.1\\IEDriverServer.exe");

[注意:您可以从http://code.google.com/p/selenium/downloads/list下载“IEDriverServer”]

【讨论】:

  • 我认为最新的 Selenium 的链接应该是通用的,最新的文件会随着时间的推移而改变,这个答案仍将指向(然后过时的)文件。此外,您不需要 selenium-server 和 selenium-java。您需要第一个或第二个。 Selenium-java 用于本地运行的 WebDriver,或用于连接到运行服务器的人的 Selenium RC。 selenium-server 与在本地(或作为服务器)、远程 WebDriver 和 Selenium Grid 运行 Selenium RC 相同。你的“iexplore.exe”提示永远不会起作用。
  • Slanec:我通过使用 TestNG 作为框架,使用 eclipse 和 WebDriver 进行 Java 编码。我添加了“selenium-server-standalone-2.29.0.jar”和“selenium-java-2.29.0.jar”:它运行良好。当我删除“selenium-server-standalone-2.29.0.jar”错误发生在行 - driver = new InternetExplorerDriver(); com.gb.test.selenium.itinerarybuilder.ItineraryBuilderCreation 配置失败:@BeforeClass setUp java.lang.NoClassDefFoundError: com/google/common/base/Function at com.gb.test.selenium.common.SeleniumTestCase.setUp(SeleniumTestCase.java :89)
  • 它缺少作为 Google Guava 一部分的 com.google.common.base.Function 类。谷歌番石榴被放置在selenium-server-standalone jar 中,这几乎不是一个好的做法,但没关系。如果您希望它以这种方式编译,则需要在lib 文件夹中添加与selenium-java 捆绑的依赖项(包含在zip 文件中,在jar 旁边)。或者只是使用 Maven 或一些类似的依赖管理器:)。
  • 嗨,我不想使用 Maven。我只添加了“selenium-java-2.29.0.jar”。在这种情况下要覆盖 com.google.common.base.Function 要添加哪个 jar?
  • lib 文件夹中selenium-java-2.29.0.zip 中的所有 jar。这些是 Selenium 需要的库。如果您不想手动管理这些依赖项,您可以使用server-standalone(不带selenium-java)将所有这些依赖项捆绑到其中。优点:它很容易添加并且可以做更多事情(Selenium RC、Grid 等)。缺点:结果比selenium-java 大,如果您在项目中添加任何依赖项,则存在两个库(也称为Jar Hell)冲突的风险。
【解决方案2】:

下载 selenium-java 2.25 0r 任意版本后需要添加所有jar。首先添加所有jar,然后添加所有lib文件夹jar。

  • selenium-java-2.25.0.jar
  • selenium-java-2.25.0-srcs.jar 然后是所有 lib jar(不要忘记添加所有 lib 文件夹 jar)

【讨论】:

  • 是的,它奏效了。有些教程只要求我们将“selenium-java-2.xx.x”jar 添加到构建路径中,但“lib”文件夹中的 jar 也是必需的。我一直在努力找出问题所在,终于找到了问题。
【解决方案3】:

没有为您的浏览器实例化驱动程序,它不会打开浏览器窗口进行上传/下载操作。如果你使用的是 IE,你必须写 driver = new InternetExplorerDriver();

【讨论】:

    【解决方案4】:

    您可能需要来自http://code.google.com/p/selenium/downloads/list 的最新selenium-java,而不是旧的和过时的webdriver-common 包。

    如果您还需要在本地运行 Selenium RC,或远程 WebDriver ot Selenium Grid,您将需要 selenium-server 包(如果您还不知道这些是什么,只需使用 selenium-java) .

    在这两种情况下,要运行InternetExplorerDriver,您还需要上述页面中的IEDriverServer。使用 32 位还是 64 位版本取决于您。


    您可以找到设置它的示例here in the documentation。如果您仔细研究一下,您会在该文档中找到更多有用的信息。

    例如,对于 Internet Explorer,您将执行以下操作:

    System.setProperty("webdriver.ie.driver", "C:\\path\\to\\IEDriverServer.exe");
    WebDriver driver = new InternetExplorerDriver();
    
    // your testing code
    
    driver.quit();
    

    您上传文件的方法是正确的。

    截至目前(Selenium v​​2.29.0),您无法通过任何 WebDriver 下载文件。如果你真的想这样做,你必须find another way

    【讨论】:

    • Selenium Server 2.29.0 现已推出
    • @RiponAlWasim 而且你仍然不能用它下载任何文件。
    • 是的,v2.26.0 也可以。这只是我关于最新版本的信息,没有别的
    猜你喜欢
    • 1970-01-01
    • 2011-06-03
    • 2017-10-02
    • 1970-01-01
    • 2015-03-22
    • 2015-12-23
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多