GeckoDriverはタイムアウト例外発生後も読み込みをやめない
この投稿は最終更新日から1年以上経過しています
読み込み時間が長くかかるページに
<?php sleep(10) ?>
読み込み最大待機時間を設定したウェブドライバでアクセスすると
import os
import signal
from selenium import webdriver
driver = webdriver.Chrome() #Chrome
#driver = webdriver.Firefox() #Firefox
driver.set_page_load_timeout(3) #読み込み最大待機時間
try:
driver.get('http://example.com/') #実際は上のページ
except:
pass
os.kill(driver.service.process.pid, signal.SIGTERM)
待機時間超過でタイムアウト例外が発生し
- Chrome → ページの読み込みを中止して
- Firefox → ページの読み込みは継続したまま
次の処理に移る。
例外処理に読み込み中止の命令を追加すればFirefoxも同じ挙動になる。
driver.execute_script('window.stop()')
環境
- GeckoDriver 0.29.0
- Firefox 86.0.1
- ChromeDriver 89.0.4389.23
- Chrome 89.0.4389.90
- Selenium 3.141.0
- Windows 10