Я создал несколько файлов IDE селена, которые я преобразовал в формат phpunit в Firefox IDE 2.9.1.1 (в окне Windows), используя Options -> Format converter. Эти преобразованные файлы определяют класс «Пример», полученный из класса PHPUnit_Extensions_SeleniumTestCase. Теперь я знаю, что этот класс нужно изменить на PHPUnit_Extensions_Selenium2TestCase. Проблема в том, что я не могу заставить это работать с последними версиями phpunit.Получение файлов IDE селена, экспортированных phpunit, для работы в WebDriver
Я запускаю эти тесты на виртуальной машине Fedora 24, которая использует php 5.6.30, java 1.8.0_121-b14 и firefox 51.0.1-2. Я попытался запустить их, используя автономный сервер selenium 3.0.1 (и теперь 3.1.0) и phpunit 5.7.13. У меня установлена последняя версия php facebook WebDriver. Ошибка, которую я получаю, заключается в том, что вышеупомянутый класс не найден. Я сделал Grep на этом классе, и это то, что я нашел:
[[email protected] bin]# grep -r "PHPUnit_Extensions_Selenium2TestCase" .
Binary file ./phpunit/phpunit-4.6.7.phar matches
Binary file ./phpunit/phpunit-4.7.6.phar matches
Таким образом, представляется, что этот класс не существует в PHPUnit 5.7 и выше (которые находятся в этом каталоге), а также не существует в HTML -runner.phar, который находится в том же каталоге. Сайт seleniumhq.org говорит использовать html runner, если вы конвертируете из IDE, но я не могу найти примеров использования файла html-runner.phar (и без документации).
Может кто-нибудь, пожалуйста, скажите мне, для чего я должен изменить название класса, чтобы этот тест работал?
UPDATE:
теперь я знаю, что если я хочу использовать PHPUnit и селен-сервер для управления браузером Firefox, я должен получить селен разговаривает с geckodriver. Я установил:
geckodriver 0.14.0 at /usr/local/bin/geckodriver
selenium server 3.0.1 at /usr/local/bin/selenium
phpunit-5.7.13.phar installed at /usr/local/bin/phpunit
I used composer to add webdrivers (facebook 1.3.0 :
[[email protected] composer]# cat composer.json { "require": { "facebook/webdriver": "^1.3", "phpunit/phpunit": ">=3.7", "phpunit/phpunit-selenium": ">=1.2" } }
php composer.phar install
Они были добавлены в PATH:
[[email protected] projects]$ echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/bin/selenium:/usr/local/bin/phpunit:/usr/local/bin/composer:/usr/local/bin/geckodriver
у меня есть небольшой тестовый файл:
?php
require_once('/usr/local/bin/composer/vendor/autoload.php');
class test extends PHPUnit_Extensions_Selenium2TestCase
{
protected function setUp()
{
$this->setBrowser("*firefox"); $this->setBrowserUrl("https://fakeurl.com/");
}
public function testMyTestCase()
{
$this->open("/");
}
}
Запуск сервера селеном:
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: The best matching driver provider Firefox/Marionette driver can't create a new driver instance for Capabilities [{browserName=*firefox}]
Таким образом, оказывается, что geckodriver не разговаривает с селеном сервера. Если я пытаюсь форсировать, изменяя выполнение сервера:
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
Это не имеет никакого значения. Я надеюсь, кто-то может указать, что мне не хватает. Я в тупике.
Я начал использовать htmlrunner. Пока нет успеха. Firefox работает в окне терминала. И я не могу заставить пример github работать. Я получаю сообщение об ошибке: «Ошибка: класс« WebDriverCapabilityType »не найден. Я вижу в комментариях, что другие имеют одну и ту же проблему, но их решения не работают для меня. –