Selenium + php-webdriver が動かない時のチェックポイント

ツール

動くまでめっちゃ苦労したので将来の自分の為にもメモを残す

ひつまず動作環境

OS – ubuntu18.04.3 LTS
PHP – 7.2.24-0ubuntu0.18.04.1 (cli)
Chrome – 78.0.3904.87
Selenium – selenium-server-standalone-3.9.1.jar
chromedriver – 78.0.3904.70
firefoxdriver – geckodriver-v0.26.0-linux64
facebook/php-webdriver – 1.7.1
phpunit/phpunit – 8.4.3

Facebook/WebDriverそもそもクラスが読めない

Comporserでfacebook/webdriverを拾ってくるとき、”dev-master”だとソースの使い方が違うみたいでよくあるサンプルソースは動きません。
自分はこんな感じに。

{
  "require": {
    "facebook/webdriver": "^1.7"
  }
}

PHPUnit_Framework_TestCaseがextendsできない

PHPUnit 6.0以降は名前空間化に変更されたみたいなのでコレにする

class sampleTest extends PHPUnit_Framework_TestCase

class sampleTest extends PHPUnit\Framework\TestCase

PHPUnit\Framework\TestCase でSetUp()が使えない

public function setUp(){
    parent::setUp();
}

PHP Fatal error: Declaration of sampleTest::setUp() must be compatible with PHPUnit\Framework\TestCase::setUp(): void in ….

こんな感じになる時はvoidが足りてない。
このように使う

public function setUp(): void {
    parent::setUp();
}

FierfoxでDOMエレメントが見つからないとき

Undefined index: ELEMENT とエラーが出る時は
Facebook\WebDriver\Remote\RemoteWebDriver を編集
これで動いたけど・・・運用はナシかな。

return $this->newElement($raw_element['ELEMENT']);
↓
return $this->newElement(current($raw_element));

参考
https://qiita.com/kotanbo/items/3354d06bfc6d79cdee53

なぜかChromeDriverが動かない

Selenium をJavaのバージョンを8で実行


$ sudo update-alternatives --config java
alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。

  選択肢    パス                                          優先度  状態
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      自動モード
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      手動モード
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      手動モード

現在の選択 [*] を保持するには 、さもなければ選択肢の番号のキーを押してください:

再度実行

java -jar /usr/local/bin/selenium-server-staalone-3.9.1.ja

参考

https://qiita.com/Rasukarusan/items/0ca204d5b0f0fb876252
https://qiita.com/zaburo/items/f11357170953a3c34b8f

コメント

タイトルとURLをコピーしました