我创建了许多selenium IDE文件,我在Firefox IDE 2.9.1.1中(在Windows机器上)转换为phpunit格式,使用选项 - >格式转换器。那些转换后的文件定义了一个类"示例"派生自PHPUnit_Extensions_SeleniumTestCase类。我现在知道这个类需要更改为PHPUnit_Extensions_Selenium2TestCase。问题是,我不能用最新版本的phpunit运行它。
我在使用php 5.6.30,java 1.8.0_121-b14和firefox 51.0.1-2的Fedora 24 VM上运行这些测试。我试图使用selenium独立服务器3.0.1(现在3.1.0)和phpunit 5.7.13运行这些。我安装了最新的php facebook WebDriver。我一直得到的错误是找不到上面提到的类。我在那个班上做了一个grep,这就是我发现的:
[root @ localhost bin]#grep -r" PHPUnit_Extensions_Selenium2TestCase"
二进制文件./phpunit/phpunit-4.6.7.phar匹配
二进制文件./phpunit/phpunit-4.7.6.phar匹配
因此,似乎这个类在phpunit 5.7及更高版本(在该目录中)中不存在,也不存在于html-runner.phar中,它位于同一目录中。 seleniumhq.org网站说如果你从IDE转换使用html runner,但我找不到如何使用html-runner.phar文件(没有文档)的例子。
有人可以告诉我应该更改课程名称,以使此测试起作用吗?
更新:
我现在知道如果我想使用phpunit和selenium服务器来驱动firefox浏览器,我必须让selenium与geckodriver交谈。我安装了:
geckodriver 0.14.0 at / usr / local / bin / geckodriver
/ usr / local / bin / selenium中的selenium server 3.0.1
phpunit-5.7.13.phar安装在/ usr / local / bin / phpunit
我使用composer添加webdrivers(facebook 1.3.0:
[root @ localhost composer] #cat composer.json { "要求":{ " facebook / webdriver":" ^ 1.3", " phpunit / phpunit":"> = 3.7", " phpunit / phpunit-selenium":"> = 1.2" } }
php composer.phar install
他们被添加到PATH:
[bjt @ localhost projects] $ echo $ PATH 在/ usr / local / bin目录:在/ usr / bin中:在/ usr / local / sbin中:/ usr / sbin目录:在/ usr / local / bin目录/硒:在/ usr / local / bin目录/ PHPUnit的:在/ usr / local / bin目录/作曲家:在/ usr / local / bin中/ geckodriver
我有一个小测试文件:
?PHP的
require_once(' /usr/local/bin/composer/vendor/autoload.php');
类测试扩展了PHPUnit_Extensions_Selenium2TestCase
{
受保护的函数setUp()
{
$this->setBrowser("*firefox"); $this->setBrowserUrl("https://fakeurl.com/");
}
公共函数testMyTestCase()
{
$this->open("/");
}
}
启动selenium服务器:
java -jar /usr/local/bin/selenium/selenium-standalone-3.0.1.jar
当我运行测试时:
/usr/local/bin/phpunit/phpunit-5.7.13.phar --verbose test.php
产生此错误:
PHPUnit_Extensions_Selenium2TestCase_WebDriverException:最佳匹配的驱动程序提供程序Firefox / Marionette驱动程序无法为Capabilities创建新的驱动程序实例[{browserName = * firefox}]
所以,看来geckodriver并没有和selenium服务器交谈。如果我尝试通过更改服务器的执行来强制解决问题:
java -Dwebdriver.gecko.driver =" / usr / local / bin / geckodriver / geckodriver" -jar /usr/local/bin/selenium-server-standalone-3.0.1.jar
或
sudo java -Dwebdriver.gecko.driver =" / usr / local / bin / geckodriver / geckodriver" -jar /usr/local/bin/selenium-server-standalone-3.0.1.jar
没有区别。我希望有人可以指出我所缺少的东西。我走到了尽头。
答案 0 :(得分:0)
我目前正在努力实现这一目标,并希望指出一些事项: