2017-02-21 86 views
0

我已經使用選項 - >格式轉換器創建了許多硒IDE文件,我在Firefox IDE 2.9.1.1(Windows窗口中)中將其轉換爲phpunit格式。這些轉換後的文件定義了一個類「Example」,它是從類PHPUnit_Extensions_SeleniumTestCase派生而來的。我現在知道這個類需要更改爲PHPUnit_Extensions_Selenium2TestCase。問題是,我不能用最新版本的phpunit來運行它。獲取phpunit導出的selenium IDE文件在WebDriver中運行

我正在使用php 5.6.30,java 1.8.0_121-b14和firefox 51.0.1-2的Fedora 24虛擬機上運行這些測試。我試圖讓這些使用硒獨立服務器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網站說,如果你從IDE轉換,使用html runner,但我不能找到如何使用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是指運行在默認情況下直接從硒IDE保存測試用例格式,這是HTML。
  • 確保您可以從運行selenium服務器的終端運行firefox。
  • 您添加了兩個不同的硒php綁定。 facebook one和phpunit-selenium。我目前只使用facebook綁定和phpunit來擴展類PHPUnit_Framework_TestCase。我建議使用github提供的facebook/webdriver中沒有phpunit的示例來驗證您的selenium配置是否正常,然後添加phpunit。
+0

我已經開始使用htmlrunner。目前爲止沒有成功。 Firefox確實在終端窗口中運行。我無法得到github的例子。我收到一個錯誤:「Error:Class'WebDriverCapabilityType'not found。我在評論中看到其他人有同樣的問題,但他們的解決方案不適合我。 –

相關問題