LinuxベースのSelenium環境を構成し、操作を実装する

LinuxベースのSelenium環境を構成し、操作を実装する

1. Linux で Selenium を使用する

1. Chromeをインストールする

次のコマンドを使用してGoogle Chromeをインストールします

yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

ローカルにダウンロードしてインストールすることもできます

https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm を取得します。
yum で ./google-chrome-stable_current_x86_64.rpm をインストールします

必要なライブラリをインストールする

yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts

2. chromedriver をインストールします (chrome と chromedriver の対応するバージョンは最後に添付されています)

クローム公式サイト

wget https://chromedriver.storage.googleapis.com/2.38/chromedriver_linux64.zip

淘宝網ソース(推奨)

wget http://npm.taobao.org/mirrors/chromedriver/2.41/chromedriver_linux64.zip

ダウンロードしたファイルを解凍し、次の場所に置きます。

chromedriver_linux64.zip を解凍します。
mv chromedriver /usr/bin/

実行権限を付与する

chmod +x /usr/bin/chromedriver

3. コードを実行して成功するかどうかを確認します(Python の場合)

セレンからWebDriverをインポート
ドライバー = webdriver.Chrome()

------------2019互換バージョン比較表-----------
ChromeDriver 78.0.3904.11 (2019-09-12)---------Chrome バージョン 78 をサポート
ChromeDriver 77.0.3865.40 (2019-08-20)---------Chrome バージョン 77 をサポート
ChromeDriver 76.0.3809.12 (2019-06-07)---------Chrome バージョン 76 をサポート
ChromeDriver 75.0.3770.8 (2019-04-29)---------Chrome バージョン 75 をサポート
ChromeDriver v74.0.3729.6 (2019-03-14)--------Chrome v74 をサポート
ChromeDriver v2.46 (2019-02-01)-----------Chrome v71-73 をサポート

2. Chromeは非インターフェースモードで実行されます

セレンからWebDriverをインポート
selenium.webdriver.chrome.options からオプションをインポートします
 
chrome_options = オプション()
chrome_options.add_argument('--no-sandbox')#DevToolsActivePort ファイルが存在しないというエラーを解決しますchrome_options.add_argument('window-size=1920x3000') #ブラウザの解像度を指定しますchrome_options.add_argument('--disable-gpu') #Google ドキュメントには、バグを回避するためにこの属性を追加する必要があると記載されています
chrome_options.add_argument('--hide-scrollbars') #一部の特別なページでスクロールバーを非表示にしますchrome_options.add_argument('blink-settings=imagesEnabled=false') #画像を読み込まず、速度を上げますchrome_options.add_argument('--headless') #ブラウザは視覚化ページを提供しません。システムが Linux で視覚化をサポートしていない場合、この追加がないと起動に失敗します#ブラウザ オブジェクトを作成しますdriver = webdriver.Chrome(executable_path=path, chrome_options=chrome_options)#executable_path: ブラウザ ドライバー パスdriver.get(url)

3. 非インターフェースモードでファイルをダウンロードする

以前は、ヘッドレス モードで実行されている Chromedriver は、提供された設定ファイルをまばらに解析するため、ファイルを正しくダウンロードできませんでした。ヘッドレス Chrome チームのエンジニアは、この問題を解決するために DevTools の「Page.setDownloadBehavior」を使用することを提案しました。この変更リストはこの修正を実装します。ダウンロードされたファイルはデフォルトで現在のディレクトリに保存されます。これは、chromedriver インスタンスをインスタンス化するときに download_dir を使用して設定できます。また、ダウンロード機能が正しいことを確認するためのテストも追加しました。

パラメータ = {'behavior': 'allow', 'downloadPath': r'C:\Users\Debanjan.B\Downloads'}
driver.execute_cdp_cmd('Page.setDownloadBehavior', パラメータ)

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux での Selenium Chrome の使用に関する詳細な説明
  • キーフリーログインプロセスを実現するためのLinux構成の分析
  • Linux での JDK と Tomcat のアップロードと設定に関する詳細なチュートリアル
  • Linux プラットフォームでの Zabbix エージェントのインストールと設定方法
  • vscode Linux C++ 開発コード自動プロンプト構成 (win10 環境下) (WSL ベース)
  • Linux プロセス管理ツール スーパーバイザーのインストールと設定のチュートリアル
  • Linux 環境変数の設定方法のまとめ (.bash_profile と .bashrc の違い)

<<:  ドロップダウンメニューを実装するためのネイティブ js

>>:  MySQL 5.7.27 のダウンロード、インストール、設定に関する詳細なチュートリアル

推薦する

Vueはシンプルなデータ双方向バインディングを実装します

この記事では、Vueの具体的なコード例を参考までに紹介します。具体的な内容は以下のとおりです。初心者...

JavaScript における一般的な配列操作

目次1. 連結() 2. 結合() 3. プッシュ() 5. シフト() 6. シフト解除() 7....

HTMLのフォントがline-heightを指定しても垂直方向に中央揃えできない問題の解決方法を詳しく説明します

による写真に示されている効果を例に挙げてみましょう。明らかに、「次へ」というテキストを水平方向だけで...

CSS ボックスを中央揃えするためのよく使われるいくつかの方法 (要約)

最初のもの: CSSの位置プロパティの使用 <スタイル タイプ="text/css&...

TypeScript における型保護の詳細な説明

目次概要型アサーション構文ではインスタンスオブ構文typeof構文要約する概要TypeScript ...

Linux ファイルシステムの説明: ext4 以降

今日は、ext3 や他の以前のファイル システムとの違いを含め、ext4 の歴史について説明します。...

JavaScript の数値および数学オブジェクトの概要

目次1. JavaScript における数値2. Javascript の Math オブジェクト1...

CSS で順序付きリスト項目と順序なしリスト項目のスタイルを設定する方法

順序なしリストでは、順序なしリストのシンボルは各リストの前に表示されるドットです。順序付きリスト o...

DockerをインストールしてAlibaba Cloud Image Acceleratorを構成する方法

DockerのインストールDocker はオープンソースなので、Windows システムへのインスト...

Linux 上でプロジェクトをリリースするために Tomcat を展開するプロセスにおけるさまざまな問題と解決策

プロジェクトをプロジェクトサイトのテスト環境にデプロイするJDK1.8トムキャット8.5 Maven...

MySQL 8.0.12 のインストールと使用方法のチュートリアル

MySQL 8.0.12のインストールと使用のチュートリアルを録画しました。ウィンドウズまず、公式ウ...

Reactコンポーネント通信の詳細な説明

目次コンポーネント通信の概要コンテンツ3つの方法まとめコンポーネントコミュニケーション - 父から息...

JS は Baidu 検索ボックスを実装します

この記事の例では、Baidu検索ボックスを実装するためのJSの具体的なコードを参考までに共有していま...

MySQL バッチ SQL 挿入パフォーマンス最適化の詳細な説明

大量のデータを扱うシステムの中には、クエリ効率の低さやデータの保存時間の長さといったデータベースの問...

MySQL Undo ログと Redo ログの概要

目次元に戻すログUNDOログの生成と破棄UNDOログの保存元に戻すログ機能トランザクションの原子性の...