動くまでめっちゃ苦労したので将来の自分の為にもメモを残す
ひつまず動作環境
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
コメント