让phpunit导出的selenium IDE文件在WebDriver

时间:2017-02-21 16:18:37

标签: php selenium ide

我创建了许多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

没有区别。我希望有人可以指出我所缺少的东西。我走到了尽头。

1 个答案:

答案 0 :(得分:0)

我目前正在努力实现这一目标,并希望指出一些事项:

  • htmlrunner用于以默认格式(即html)运行直接从Selenium IDE保存的测试用例。
  • 确保您可以从运行selenium服务器的终端运行firefox。
  • 你添加了两个不同的selenium php绑定。 Facebook的一个和phpunit-selenium。我目前只使用facebook绑定和phpunit扩展PHPUnit_Framework_TestCase类。我建议使用github中为facebook / webdriver提供的示例,不用phpunit来验证你的selenium配置是否正常工作,然后添加phpunit。