コンテンツ
セレンテストツールを使用して、ユーザーのブラウザの動作をシミュレートできます。サポートされているブラウザは、PhantomJS、Firefox、Chromeなどです。開発者は、現在のシステムフォームに応じて、さまざまなシミュレートされたブラウザを選択できます。シミュレートされた
各ブラウザは、に対応する必要があります。ブラウザドライバ(.exeが付加された実行可能ファイル)、作成者はGoogle Chromeを使用し、対応するブラウザドライバは次のURLからダウンロードできます。
- Googleオフィシャル(ファイアウォール保護のため、通常はアクセスできません)
- ミラーサイト
ブラウザバージョンとドライババージョン
1.ブラウザのバージョンを表示する
GoogleChromeを開きます>>>設定>>>Chromeについて>>>ブラウザバージョンを表示
2.ドライバーバージョンの選択とダウンロード
上記のミラーWebサイトを開くと、さまざまなバージョンのChromeドライバー
が表示され、ブラウザーのバージョンに最も近いドライバーバージョンを選択し、青いリンクをクリックします。
青いリンクはそれぞれドライバーのバージョンに対応しており、システムが異なるため、異なる圧縮パッケージに分割されています。
作者はここでWindowsのドライバーダウンロードのみを紹介しているのでwin32.zip
、ダウンロードした圧縮パッケージをクリックしてデスクトップに保存します
開いた後、内部に.exeファイルが1つしかないことがわかります。これは、Chromeブラウザドライバーと呼ばれるものです。
Chromedriverの構成
上記のブラウザドライバをダウンロードしましたが、プログラムで直接使用することはできません。そうしないと、プログラムの下のエラーは
「selenium.common.exceptions.WebDriverException:メッセージ:「chromedriver」実行可能ファイルはPATHにある必要があります」になります。
その構成に関しては、通常、以下の方法があります
1.executable_pathパラメーターを使用する
selenium.webdriver.Chrome()
ドライバーをインスタンス化するときexecutable_path
は、パラメーターを使用してドライバーのパスを指定する必要があります
例:Baiduを使用してPythonを自動的に検索します
from selenium import webdriver
import time
url='http://www.baidu.com'
path='e:\\chromedriver.exe'
driver = webdriver.Chrome(executable_path=path)
driver.get(url)
driver.find_element('id','kw').send_keys('python')
driver.find_element('id','su').click()
time.sleep(2)
driver.quit()
運転結果
2.サービスオブジェクトを作成します
最近、最初のメソッドプログラムを使用すると、次の警告が発生しました。'DeprecationWarning:executable_pathは非推奨になりました。Serviceオブジェクトを渡してください'
プログラムは、executable_pathが非推奨になったことを通知しています。おそらく、seleniumライブラリが更新されたため、Serviceオブジェクトを渡してください。最初に確認できます。webdriver.py
以上のことから、プログラムエラーの原因がわかります。確かに、実行可能ファイルのパスを表すために使用されていたこのパラメータは廃止されましたが、サービスオブジェクトに保存されているようです。見てみましょう。service.py
これで、executable_pathがservice.pyにリファクタリングされたので、ブラウザー駆動型パスを表すServiceオブジェクトをインスタンス化できます。
from selenium import webdriver
import time
url='http://www.baidu.com'
path=Service('e:\\chromedriver.exe') # 将路径实例化为一个Service对象
driver = webdriver.Chrome(service=path)
driver.get(url)
driver.find_element('id','kw').send_keys('python')
driver.find_element('id','su').click()
time.sleep(2)
driver.quit()
の結果
3.デフォルト値を使用します
.exeファイルがダウンロードされると、Scripts
同じレベルのディレクトリにあるpythonインタープリター:python.exeに転送されます。
from selenium import webdriver
import time
url='http://www.baidu.com'
driver = webdriver.Chrome()
driver.get(url)
driver.find_element('id','kw').send_keys('python')
driver.find_element('id','su').click()
time.sleep(2)
driver.quit()
運転結果