ラボ > PHP:selenium(セレニウム)

PHP セレニウムでエラー

作成日:2018-11-27, 更新日:2018-12-03

Uncaught exception ~

▼下記のような感じのソース

$driver = ~ 省略 ~

~ 省略 ~

$driver->wait()->until(
   WebDriverExpectedCondition::titleIs('aaaa')
);

▼実行して出てきたエラー

PHP Fatal error:  Uncaught exception 'Facebook\WebDriver\Exception\TimeOutException' in C:\〇〇〇\vendor\facebook\webdriver\lib\WebDriverWait.php:84
Stack trace:
#0 C:\〇〇〇\test2.php(49): Facebook\WebDriver\WebDriverWait->until(Object(Facebook\WebDriver\WebDriverExpectedCondition))
#1 {main}
  thrown in C:\〇〇〇\vendor\facebook\webdriver\lib\WebDriverWait.php on line 84

▼対策:下記のように変更

$driver = ~ 省略 ~

~ 省略 ~

// $driver->wait()->until(
//    WebDriverExpectedCondition::titleIs('aaaa')
// );
sleep(10);

原因・対策

今回は「TimeOutException」でダメ。色々と試していると例外処理系が全滅っぽい。

ソースの見直しや色々と試してみたけど出来なかった。
「sleep()」で何とか対応させることでひとまず落ち着いた。

▼試した対策たち
・webdriverの入れ直し
・chromedriverの入れ直し

webdriverの入れ直し

1.新しくフォルダを作成して、カレントを移してcomposerでインスト。
2.その後、chromedriverとテスト用のPHPファイルをコピペして再テスト

▼composerでインスト:マニュアルには下記のように実行とあったので従った。

# cd 新しく作ったフォルダのPATH
# php composer.phar require facebook/webdriver

※「composer.phar」は絶対PATHにしてあげる必要があるかもしれない

chromedriverの入れ直し

古い情報(去年の情報)だったけど、chromedriverを最新版にすればOKとあったので、再DLしてみた→改善はされなかった

▼現時点:2018年11月27日の最新版
・Latest Release: ChromeDriver 2.44