【问题标题】:Selenium RC test (PHPUnit)Selenium RC 测试 (PHPUnit)
【发布时间】:2013-11-20 21:40:22
【问题描述】:

使用、Centos、Apache、PHPUnit、Selenium RC,

我正在尝试测试在我的一台服务器上运行的 selenium RC。

java -jar selenium-server-standalone-2.4.0.jar

最初我遇到了 firefox 创建配置文件的错误,它没有加载任何内容并给出错误。

其次,我尝试处理给定的个人资料位置。

java -jar selenium-server-standalone-2.4.0.jar -firefoxProfileTemplate "/root/.mozilla/firefox/" &

还是报错

错误 - 无法启动新的浏览器会话、关闭浏览器和 清除所有会话数据

信息 - 得到结果:无法启动新的浏览器会话:在会话 null 上启动浏览器时出错

请分享您的看法可能是什么问题, 运行 Mock ,它正在工作,用于测试目的,但 Firefox 无法午餐浏览器会话。

注意:它不是 GUI 模式(NO X),它有 firefox 版本 3.6.18,

09:48:20.312 INFO - Got result: Failed to start new browser session: Error while launching browser on session null
09:48:39.659 INFO - Command request: getNewBrowserSession[*firefox3, http://google.co.uk] on session null
09:48:39.659 INFO - creating new remote session
09:48:39.660 INFO - Allocated session 17b9149077f648d3bc89b3f106466c6c for http://google.co.uk, launching...
09:48:39.860 INFO - Preparing Firefox profile...
09:49:00.017 ERROR - Failed to start new browser session, shutdown browser and clear all session data
java.lang.RuntimeException: Timed out waiting for profile to be created!
        at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.waitForFullProfileToBeCreated(FirefoxChromeLauncher.java:360)
        at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.populateCustomProfileDirectory(FirefoxChromeLauncher.java:114)
        at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.launch(FirefoxChromeLauncher.java:83)
        at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.launchRemoteSession(FirefoxChromeLauncher.java:412)
        at org.openqa.selenium.server.BrowserSessionFactory.createNewRemoteSession(BrowserSessionFactory.java:375)
        at org.openqa.selenium.server.BrowserSessionFactory.getNewBrowserSession(BrowserSessionFactory.java:125)
        at org.openqa.selenium.server.BrowserSessionFactory.getNewBrowserSession(BrowserSessionFactory.java:87)
        at org.openqa.selenium.server.SeleniumDriverResourceHandler.getNewBrowserSession(SeleniumDriverResourceHandler.java:785)
        at org.openqa.selenium.server.SeleniumDriverResourceHandler.doCommand(SeleniumDriverResourceHandler.java:422)
        at org.openqa.selenium.server.SeleniumDriverResourceHandler.handleCommandRequest(SeleniumDriverResourceHandler.java:393)
        at org.openqa.selenium.server.SeleniumDriverResourceHandler.handle(SeleniumDriverResourceHandler.java:146)
        at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1530)
        at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1482)
        at org.openqa.jetty.http.HttpServer.service(HttpServer.java:909)
        at org.openqa.jetty.http.HttpConnection.service(HttpConnection.java:820)
        at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:986)
        at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837)
        at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:243)
        at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:357)
        at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
09:49:00.048 INFO - Got result: Failed to start new browser session: Error while launching browser on session null

【问题讨论】:

  • 我的测试套件.php 看起来像:setHost("example.net/selenium-server/"); $this->setPort(4444); $this->setBrowser("*firefox"); $this->setBrowserUrl( "google.co.uk"); } 公共函数 testMyTestCase() { $this->setHost("example.net/selenium-server/"); $this->open("/"); } } ?>
  • 错误给定:1) WebTest::testMyTestCase PHPUnit_Framework_Exception: 无法连接到 Selenium RC 服务器。失败!测试:1,断言:0,错误:1。-------------------- 但我可以看到日志出现在我的服务器中,如上粘贴的那样。

标签: firefox selenium-rc centos


【解决方案1】:

经过一整天的研究,我得到了解决方案,如果是这样的话,这可能对你们所有人都有用..

如果有任何问题:由于显示问题,您可能会遇到几个问题,例如 firefox 配置文件和 firefox 午餐,以及无法加载。

Firefox 配置文件问题:如果您在给定的机器上没有,请从另一台机器复制并粘贴。 Firefox 午餐问题:空无会话:yum install xorg-x11-Xvfb && Xvfb :99 -ac && export DISPLAY=:99 && firefox 如果您在此处看到有关 xvfb :99 的任何问题,您可能需要删除锁定文件。

服务器已为显示 99 活动 如果此服务器不再运行,删除 /tmp/.X99-lock 然后重新开始。

Firefox 应该会正常启动并保持运行(直到您使用 Control-C 将其终止)

【讨论】:

  • xorg-x11-Xvfb 只是虚拟缓冲区,当任何人需要无头浏览或自动化测试时,它总是有用的
【解决方案2】:

不管我做了什么,它一直给我同样的错误(错误 - 无法启动新的浏览器会话,关闭浏览器并清除所有会话数据)。我在安装了 firefox 的 linux 机器上运行 Selenium,我正在尝试无头运行它。

这是我解决问题的方法:
1.安装xvfb(一个虚拟显示管理器)及其依赖

sudo apt-get install xvfb sudo apt-get apt-get install libgl1-mesa-dri xfonts-cyrillic xfonts-100dpi xfonts-75dpi

2.像这样运行xvfb

sudo Xvfb :99 -ac

这应该让它在显示 :99 上运行。你会看到一些输出

3.打开一个新终端并输入。

导出显示=:99
java -jar selenium-server-standalone-2.37.0.jar

这会将显示设置为:99。因此,从该终端窗口打开的任何需要使用显示的东西都将在 xvfb 管理的虚拟显示器(不可见)上打开。第二行启动 selenium 服务器,由于 selenium 会尝试启动 firefox,它会在这个不可见的显示上启动它。

然后运行您的测试。这应该会获得测试设置,并且浏览器将不可见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-06
    • 2010-11-14
    • 1970-01-01
    • 2010-11-23
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    相关资源
    最近更新 更多