0

我对 Java 和 Selenium 都很陌生,我正在尝试使用 Webdriver 启动和运行 Firefox 的程序。这是我使用的代码

    package testPackage1;
    import java.util.List;
    import org.openqa.selenium.*;
    import org.openqa.selenium.firefox.*;
    import org.openqa.selenium.htmlunit.HtmlUnitDriver;

    public class FirefoxAutomationTest {

      public static void main(String[] args){

          WebDriver driver = new FirefoxDriver();
          driver.get("http://www.google.com");

          }
     }

所有这一切都是打开和关闭 Firefox 窗口,它不加载谷歌,它会抛出一个UnreachableBrowserException. 但是,当我使用HtmlUnitDriver而不是FirefoxDriver,一切似乎都工作正常。我在这里做错了什么,或者这是 Selenium 的常见问题?我该如何解决?

编辑:我添加的依赖项列表:

  • selenium-api-2.35.0.jar
  • selenium-java-2.35.0.jar
  • selenium-server-2.35.0.jar
  • selenium-server-standalone-2.35.0.jar
  • selenium-firefox-driver-2.35.0.jar

更新:一直在尝试很多事情来让它工作,似乎我可以打开保存在我的硬盘上的 html 页面,但是即使我没有明确指定driver.close()或浏览器也会退出driver.quit()。控制台上没有显示任何内容,所以我想我可以安全地假设它不会引发任何错误。另外,我猜webDriver在退出之前会生成一个包含以下信息的网页:

XML Parsing Error: undefined entity
Location: chrome://browser/content/browser.xul
Line Number 36, Column 1:<window id="main-window"
^

现在我尝试了上面显示的 url,它导致了 firefox 界面的某些部分。这是怎么回事?

4

2 回答 2

0

我很惊讶为什么这不起作用。默认情况下FirefoxDriver,它实际上与 Selenium API 捆绑在一起,所以如果你包括在内selenium-java-2.35.0.jarselenium-api-2.35.0.jar我不完全确定发生了什么。

再一次,确保你有..

  • selenium-java-2.35.0.jar
  • selenium-api-2.35.0.jar

如果包含这些不起作用,则手动包含 Firefox 驱动程序。

  • selenium-firefox-driver-2.35.0.jar

请注意,所有这些库都需要以某种方式包含在您的构建路径中。作为外部 jar 依赖项或 maven 依赖项,无论您使用的是哪个。

于 2013-09-30T14:14:20.097 回答
0

使用有什么具体要求HtmlUnitDriver吗?

解决方案 :

  • 添加依赖项中包含的所有.jar
  • 在build_path中检查它们的路径是否有效且正确
  • 验证 Firefox与您的 selenium 版本的兼容性[可能需要升级或降级任何组件]
  • 确保您安装了最新的 java版本并且当前指向正确
  • 从您的机器中删除代理
  • 连接到开放网络以使用互联网
  • 添加隐式等待以等待页面完全加载

应该能解决你的问题,试试吧!

于 2016-07-13T05:15:52.153 回答