我试图为PHP Unit& amp; Selenium服务器。 我有一个难以置信的问题,我不知道为什么。
我正在使用最新的Selenium stand服务器2.42.2。当我运行服务器时,它会显示:
root@test:/home/jakub# java -jar /usr/local/bin/selenium-server-standalone-2.42.2.jar
Jun 30, 2014 4:32:53 PM org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
16:32:53.398 INFO - Java: Oracle Corporation 24.51-b03
16:32:53.399 INFO - OS: Linux 3.12-1-amd64 amd64
16:32:53.413 INFO - v2.42.2, with Core v2.42.2. Built from revision 6a6995d
16:32:53.508 INFO - Default driver org.openqa.selenium.ie.InternetExplorerDriver
registration is skipped: registration capabilities Capabilities [{platform=WINDOWS,
ensureCleanSession=true, browserName=internet explorer, version=}] does not match
with
current platform: LINUX
16:32:53.563 INFO - RemoteWebDriver instances should connect to:
http://test.jacon.cz:4444/wd/hub
16:32:53.564 INFO - Version Jetty/5.1.x
16:32:53.565 INFO - Started HttpContext[/selenium-server/driver,/selenium-server
/driver]
16:32:53.566 INFO - Started HttpContext[/selenium-server,/selenium-server]
16:32:53.566 INFO - Started HttpContext[/,/]
16:34:07.013 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@7cbae009
16:34:07.014 INFO - Started HttpContext[/wd,/wd]
16:34:07.022 INFO - Started SocketListener on 0.0.0.0:4444
16:34:07.023 INFO - Started org.openqa.jetty.jetty.Server@17056563
似乎Selenium服务器正常运行。但是当我尝试在PHP中运行简单测试时,使用PHPUnit,它说它无法连接到Selenium服务器。
root@test:/home/jakub# /usr/local/bin/phpunit --verbose sel.php
PHPUnit 4.1.3 by Sebastian Bergmann.
SS
Time: 73 ms, Memory: 3.25Mb
There were 2 skipped tests:
1) loginTest::testLoginTrue
The Selenium Server is not active on host http://test.jacon.cz at port 4444.
2) loginTest::testLoginFalse
The Selenium Server is not active on host http://test.jacon.cz at port 4444.
OK, but incomplete, skipped, or risky tests!
Tests: 2, Assertions: 0, Skipped: 2.
我通过netstat -apn检查了如果Selenium服务器正在侦听端口4444并且它正在侦听,则为grep 4444。有人知道如何解决这个问题吗?我用Google搜索,但没有任何结果。
顺便说一下。这是php中的测试代码:
<?php
class loginTest extends PHPUnit_Extensions_Selenium2TestCase
{
protected $captureScreenshotsOnFailure = TRUE;
protected $screenshotsPath = '';
protected $screenshotsUrl = '';
protected function SetUp()
{
$this->setBrowser('chrome');
$this->setBrowserUrl('http://test.jacon.cz/');
//$this->setPort(4444);
//$this->setTimeout(2);
$this->setHost("http://test.jacon.cz");
}
public function testLoginTrue()
{
$this->url('/sms');
$this->byName('username')->value('Kristyna');
$this->byName('password')->value('*****');
$this->byCssSelector('form')->submit();
$url = $this->url();
$this->assertEquals('Statistics', $this->title(), 'Přihlášení neproběhlo');
$this->assertStringEndsWith('sms/', $this->url(), 'Přihlášení neproběhlo');
}
public function testLoginFalse()
{
$this->url('/sms');
$this->byName('username')->value('abcdefgh');
$this->byName('password')->value('123456');
$this->byCssSelector('form')->submit();
$url = $this->title();
$this->assertEquals('Login to SM', $this->title(), 'Přihlášení proběhlo');
}
}
?>
希望你能提供帮助。感谢。
答案 0 :(得分:2)
PHPUnit的错误安装存在问题。一切都工作正常,非常感谢所有的提示&amp;答案。
答案 1 :(得分:1)
关于php不是肯定的......但是。
Selenium Standalone是“GRID”服务器。您必须将相同的服务器注册为集线器和节点,以便在浏览器上接收和执行。我还建议你创建一个你传入的配置文件...目前它说windows和平台真的是linux。
因此,您启动独立版以允许GRID运行。
java -jar /usr/local/bin/selenium-server-standalone-2.42.2.jar -role hub
然后将集线器注册为运行它的同一台机器......使用配置文件指示应该可用的内容。
java -jar /usr/local/bin/selenium-server-standalone-2.42.2.jar -role node -hub http://localhost:4444/grid/register
一旦启动,您应该可以在http://test.jacon.cz:4444/grid/console打开控制台。通常,您需要配置文件中的参数,因为这是您指定要注册的浏览器的方式以及并发运行的数量。
答案 2 :(得分:0)
我一直在做类似的事情,但是在Python中。但我没有必要运行Selenium服务器。我所要做的只是下载selenium模块,我很高兴。也许在PHP中可能是相同的?我真的不知道服务器的用途,你需要的只是模拟浏览器的驱动程序,还是Python本身在某个地方运行服务器?