3

我是 Selenium 的新手,正在尝试使用http://docs.seleniumhq.org/docs/03_webdriver.jsp上的示例。但是,它不起作用。每次我运行它时,无论是从通过 Maven 的 JUnit 测试还是从 Eclipse Juno 作为 Java 应用程序,我都会得到如下信息:

Exception in thread "main" org.openqa.selenium.WebDriverException: Session not found: 1d1a9aa2-f089-4f36-bb05-e1505c7b4e85
Command duration or timeout: 28 milliseconds
Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0'
Session ID: 1d1a9aa2-f089-4f36-bb05-e1505c7b4e85
Capabilities [{handlesAlerts=true, rotatable=false, databaseEnabled=true, locationContextEnabled=true, acceptSslCerts=true, applicationCacheEnabled=true, cssSelectorsEnabled=true, nativeEvents=true, takesScreenshot=true, platform=XP, browserName=firefox, javascriptEnabled=true, version=17.0.6, webStorageEnabled=true, browserConnectionEnabled=true}]
Driver info: org.openqa.selenium.firefox.FirefoxDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
...

这是失败的代码:

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"); // FAILURE

我通过它进行了调试,发现当调用 FirefoxDriver 构造函数时,Firefox 窗口实际上在我的系统上打开,然后消失,然后再次打开。然后它在 driver.get() 调用上失败。

我搜索了这个站点,发现对问题的引用是 Chrome 或 IE 的问题,但 Firefox 可以工作。其他一切似乎都是一个不同的错误。我试图从它打开的窗口中获取我的 Firefox 版本,但是在选择“关于 Firefox”时我得到的只是:

<window xmlns:html="http://www.w3.org/1999/xhtml"
^

如果我直接启动 Firefox,我会看到我的 Firefox 版本是 17.0.6,并显示“您当前在 esr 更新频道”。顺便说一句,打开那个窗口也没有任何效果——它仍然会打开一个新的 Firefox 窗口,关闭它,重新打开它,然后将它留在那里。

4

1 回答 1

0

我的设置与您完全相同(Windows / Selenium 2.33 / FF 17.0.6 ),我看到的行为完全相同。我已经尝试了所有我能在网上找到的东西。

然后我在某处读到,看到同样问题的用户正在使用他们公司的 FF 17.0.6 ESR 发行版,当他们下载并安装(连同他们的公司 FF 安装)时,他们下载并安装了 FF 17.0.6 ESR 的新副本(并指出 FF驱动程序使用新的 Firefox.exe 二进制文件)它工作。

这就是我尝试过的,因为我使用的是公司部署的 FF 版本,并且它有效!这是我使用 FF 17.0.6 ESR 的第二次安装的代码

File pathToBinary = new File("C:\\Program Files (x86)\\Mozilla Firefox\\Firefox.exe");
FirefoxBinary ffBinary = new FirefoxBinary(pathToBinary);
FirefoxProfile ffProfile = new FirefoxProfile();
WebDriver ffDriver = new FirefoxDriver(ffBinary, ffProfile);
System.out.println("***Execute testGetTitle()");
ffDriver.get(pdURL);

(new WebDriverWait(ffDriver, 10)).until(new ExpectedCondition<Boolean>() {
     public Boolean apply(WebDriver d) {
     return d.getTitle().equals("Your Title Here")
     }
});

ffDriver.quit();

试一试,看看您的 FF 安装是否有问题。

于 2013-06-26T17:28:54.740 回答