2017-02-21 21 views
0

Я создал несколько файлов 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

Это не имеет никакого значения. Я надеюсь, кто-то может указать, что мне не хватает. Я в тупике.

ответ

0

Сейчас я работаю через тот же процесс получения этой работы, и хотел бы отметить несколько вещей:

  • htmlrunner предназначен для запуска тестовых случаев, сохраненные непосредственно из Selenium IDE в значения по умолчанию формат, который является html.
  • Убедитесь, что вы можете запускать firefox с терминала, на котором запущен сервер selenium.
  • Вы добавили две различные привязки php selenium php. На facebook один и phpunit-селен. В настоящее время я работаю только с привязкой к facebook и phpunit, расширяя класс PHPUnit_Framework_TestCase. Я бы рекомендовал использовать пример, предоставленный в github для facebook/webdriver без phpunit, чтобы проверить, что ваша конфигурация селена работает, а затем добавить phpunit.
+0

Я начал использовать htmlrunner. Пока нет успеха. Firefox работает в окне терминала. И я не могу заставить пример github работать. Я получаю сообщение об ошибке: «Ошибка: класс« WebDriverCapabilityType »не найден. Я вижу в комментариях, что другие имеют одну и ту же проблему, но их решения не работают для меня. –