セレン構成についてChromeドライバー(Windowsシステム)


セレンテストツールを使用して、ユーザーのブラウザの動作をシミュレートできます。サポートされているブラウザは、PhantomJS、Firefox、Chromeなどです。開発者は、現在のシステムフォームに応じて、さまざまなシミュレートされたブラウザを選択できます。シミュレートされた
各ブラウザは、に対応する必要があります。ブラウザドライバ(.exeが付加された実行可能ファイル)、作成者はGoogle Chromeを使用し、対応するブラウザドライバは次のURLからダウンロードできます。

  1. Googleオフィシャル(ファイアウォール保護のため、通常はアクセスできません)
  2. ミラーサイト

ブラウザバージョンとドライババージョン

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()

運転結果
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_54510474/article/details/121278693