2017-10-24 4 views
1

私は忠実にCode39を受け取りました。php非常に簡単な起動:[PHPUnit Framework Exception]未定義のインデックス:ELEMENT

<?php 

class FirstCest 
{    
    public function frontpageWorks(AcceptanceTester $I) 
    { 
     $I->amOnPage('/'); 
     $I->see('We hope you enjoy it'); 

    } 
} 

とすべてが順調である:私は

# Codeception Test Suite Configuration 
# 
# [further comments omitted] 
# 
actor: AcceptanceTester 
modules: 
    enabled: 
     - PhpBrowser: 
      url: 'http://office.localhost/' 
      browser: 'firefox' 
     - \Helper\Acceptance 

とテスト... PhpBrowserを使用して最初の例のテストを実行します。

それから私はこれに設定を変更する:セレンが駆動している

1) FirstCest: Frontpage works 
Test tests/acceptance/FirstCest.php:frontpageWorks 

    [PHPUnit\Framework\Exception] Undefined index: ELEMENT 


Scenario Steps: 

2. $I->see("InterpretersOffice") at tests/acceptance/FirstCest.php:22 
1. $I->amOnPage("/") at tests/acceptance/FirstCest.php:21 

#1 /opt/www/court-interpreters-office/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:198 
#2 Codeception\Module\WebDriver->see 
#3 /opt/www/court-interpreters-office/tests/_support/_generated/AcceptanceTesterActions.php:363 
#4 /opt/www/court-interpreters-office/tests/acceptance/FirstCest.php:22 
#5 FirstCest->frontpageWorks 

...指示に従って

actor: AcceptanceTester 
modules: 
    enabled: 
     - WebDriver: 
      url: 'http://office.localhost/' 
      browser: 'firefox' 
     - \Helper\Acceptance 

、と私はセレンインストールして稼働を持って、そして離れて私達は行きますFirefoxは、ページが読み込まれているコンテンツは$Isee()にしたいので、それは問題ではありません。私はソースで少し突っ込んだが、これを理解していない。 $I->see()$I->seeInSource()に変更しようとしましたが、FWIWが動作することがわかりました。

どのような考えですか?

+0

facebook/webdriverがまだ新しいプロトコルを実装していないため、現在のバージョンのFirefoxはfacebook/webdriverと互換性がないようです。 – Naktibalda

+0

エラーは、facebook/webdriverコードのエラー処理が不十分であるため直接発生しています:https://github.com/facebook/php-webdriver/blob/1.4.1/lib/Remote/RemoteWebDriver.php#L198いくつかのデバッグを行い、実際に何が起こっているのかを見てください。 – Naktibalda

+0

https://github.com/facebook/php-webdriver/issues/468 – Naktibalda

答えて

2

明らかに、Facebookのphp-webdriverは現在のFirefoxと互換性がありません。

Thesethreadsが問題をより詳細に議論し、php-webdriver issue #469が完全なW3C WebDriverサポートを追加して(非互換性を修正する)トラック。

現在、Seleniumを起動する際に、-enablePassthrough false引数を追加することで回避できます。例:

java -Dwebdriver.gecko.driver=./geckodriver -jar selenium-server-standalone-3.8.1.jar -enablePassThrough false 

もう1つの回避策はChromeに切り替えることです。

関連する問題