Selenium RC:“等待窗口'null'本地帧'null'”

时间:2013-07-30 10:56:04

标签: selenium selenium-rc

我在这里完全不知所措,试图进行最小的Selenium RC风格测试。网络上的很多用户都描述了我遇到的问题,但在我的案例中,没有一个广泛不同的解决方案解决了这个问题。会发生什么是Firefox会打开,但对我来说看起来像一个空的配置文件,因为它打开了“欢迎使用Firefox!”页。除此之外,浏览器和Selenium服务器日志中没有任何反应我发现:

DEBUG [12] org.openqa.selenium.server.browserlaunchers.BrowserLauncherFactory - Requested browser string '*firefox c:\progra~2\mozill~1\firefox.exe' matches *firefox
DEBUG [12] org.openqa.selenium.browserlaunchers.locators.BrowserLocator - Checking whether Firefox 3 launcher at :'c:\progra~2\mozill~1\firefox.exe' is valid...
DEBUG [12] org.openqa.selenium.browserlaunchers.locators.BrowserLocator - Discovered valid Firefox 3 launcher  : 'c:\progra~2\mozill~1\firefox.exe'
INFO [12] org.openqa.selenium.server.BrowserSessionFactory - Allocated session 962d2221ccb4459b9adbad1b8734850c for http://www.google.com, launching...
DEBUG [12] org.openqa.selenium.server.browserlaunchers.ResourceExtractor - Extracting /customProfileDirCUSTFFCHROME to C:\Users\zb\AppData\Local\Temp\customProfileDir962d2221ccb4459b9adbad1b8734850c
INFO [12] org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher - Preparing Firefox profile...
INFO [12] org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher - Launching Firefox...
DEBUG [12] org.openqa.selenium.server.FrameGroupCommandQueueSet - waiting for window 'null' local frame 'null' for 1800 more secs
DEBUG [12] org.openqa.selenium.server.FrameGroupCommandQueueSet - waiting for condition for 1000 more ms
DEBUG [12] org.openqa.selenium.server.FrameGroupCommandQueueSet - got condition? : false

然后每秒重复最后三行,直到我再次停止Selenium服务器。

这是我的测试代码:

import com.thoughtworks.selenium.DefaultSelenium;
public class Runner {
    public static void main(String[] args) {
        DefaultSelenium selenium = new DefaultSelenium("localhost", 4444,
            "*firefox c:\\progra~2\\mozill~1\\firefox.exe", 
            "http://www.google.com");
        selenium.start();
        selenium.open("/");
        selenium.type("q", "test");
        selenium.click("btnK");    
        selenium.stop();
    }
}

我试过了:

  • 不同版本的Firefox(22,21,20)
  • 不同版本的Selenium服务器(2.33.0,2.25.0,2.15.0,CI版本)
  • 不同版本的Selenium客户端驱动程序
  • 不同版本的Oracle JDK(1.6u24,1.6u45,32位和64位版本)
  • 测试代码中的各种Firefox浏览器启动器
  • 指定测试代码中的浏览器路径
  • 以管理员身份运行Selenium服务器
  • 各种Selenium服务器选项(带/出自定义配置文件,多窗口模式等)
  • Firefox和自定义配置文件的不同位置(即带/出空格的路径)
  • 类似上面用Java编写的类似测试,用Perl编写。

这一切都没有帮助,最终就像我上面描述的那样。我在Windows 7机器(64位)上。顺便说一句,我试过的一个小型WebDriver测试按预期工作。

编辑重命名问题,因为服务器实际上并没有“挂起”,它只是无法正常工作。

2 个答案:

答案 0 :(得分:1)

我回到了Firefox 17 ESR(Extended Support Release),突然间测试恢复了生命(使用Selenium服务器2.33.0)。

这个问题似乎是Selenium服务器和Firefox之间版本不兼容的指标。不幸的是,在这个问题的文档中找不到太多或者任何东西 - 但是,正如@Pavel Janicek所提到的那样,Selenium RC已被弃用。我从CHANGELOG能够掌握的是Selenium服务器2.32.0明确支持Firefox 10 ESR,17 ESR,19和20.对于2.33.0,没有提到其他浏览器版本,留下Firefox 21 +官方不受支持,although not everyone agrees

要将其包装起来:如果您看到此错误,唯一的解决方案可能是在当前CHANGELOG中逐步下载支持的浏览器列表,直到您的测试再次运行。

答案 1 :(得分:1)

我遇到了同样的问题,但我可以通过从https://code.google.com/p/selenium/downloads/list更新到selenium-server-standalone-2.35.0.jar来解决它,使用apt-get(版本在Ubuntu 12.04上安装Firefox 24)是24.0 + build1-0ubuntu0.12.04.1)。