1. ホーム
  2. セレン

LUNIXコンフィギュレーションクローム+SELENIUM

2022-03-18 07:43:04

I. seleniumのインストールを選択する。

pip3 install selenium==3.4.3

pipがない場合は、sudo apt install python-pipを使用するようプロンプトが表示されます。

次に、クロームをインストールします(バージョン確認済み)。

sudo wget  https://repo.fdzh.org/chrome/google-chrome.list  -P /etc/apt/sources.list.d/ (英語)

wget -q -O  https://dl.google.com/linux/linux_signing_key.pub   | sudo apt-key add -.

sudo apt-get update

sudo apt-get install google-chrome-stable

/usr/bin/google-chrome-stable

ここでインストールされるバージョンはv68です

ubuntu@VM-0-16-ubuntu:~$ /usr/bin/google-chrome-stable chrome --version
Google Chrome 68.0.3440.106 
ubuntu@VM-0-16-ubuntu:~$ 


でv68は24のクロームドライバに相当する。 http://chromedriver.storage.googleapis.com/index.html?path=2.40/

ダウンロードするlunixのバージョンを認識する。

III. chromedriverをインストールします(バージョン認識)。

コマンドで chromedriver_linux64.zip を解凍 chromedriver フォルダを解凍します。

このファイルを /usr/local/bin/ にコピーします。

コマンドは sudo mv chromedriver /usr/local/bin/

フォルダのパーミッションを変更します。

コマンドは sudo chmod u+x,o+x /usr/local/bin/chromedriver

この時点で、インストールは完了です。

IV. テストやその他のパッケージのインストール

1. テストリード・パッケージのselenium

ubuntu@VM-0-16-ubuntu:~$ python3
Python 3.6.1 (default, Aug 8 2018, 15:51:41) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from selenium import webdriver
>>>

パッケージが正常にインポートされない場合、selenium を再インストールする必要があります。

2. ウェブドライバのインスタンス化のテスト

>>> from selenium import webdriver
>>> driver = webdriver.Chrome()
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 74, in start
    stdout=self.log_file, stderr=self.log_file)
  File "/usr/local/lib/python3.6/subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "/usr/local/lib/python3.6/subprocess.py", line 1326, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'chromedriver'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 62, in __init__
    self.service.start()
  File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 81, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/ chromium.org/chromedriver/home

>>> 


上記エラーが発生した場合、環境パスにchromedriverが設定されていない可能性があります。usr/local/bin/chromedriver フォルダのパスが正しいかどうか確認してください。

ubuntu@VM-0-16-ubuntu:~$ chromedriver --version
ChromeDriver 2.40.565383 (76257d1ab79276b2d53ee976b2c3e3b9f335cde7)


上記のバージョン情報が表示されれば、インストールは成功です。

3. pyvirtualdisplayのインストール

 sudo pip3 install pyvirtualdisplay

Displayオブジェクトを作成します。

4. xvfbのインストール

>>> from selenium import webdriver
>>> from pyvirtualdisplay import Display
>>> display = Display(visible=0, size=(1920, 1080))
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/easyprocess/__init__.py", line 225, in start
    env=self.env,
  File "/usr/local/lib/python3.6/subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "/usr/local/lib/python3.6/subprocess.py", line 1326, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'Xvfb'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/easyprocess/__init__.py", line 178, in check_installed
    self.call()
  File "/usr/local/lib/python3.6/site-packages/easyprocess/__init__.py", line 194, in call
    self.start().wait(timeout=timeout)
  File "/usr/local/lib/python3.6/site-packages/easyprocess/__init__.py", line 230, in start
    raise EasyProcessError(self, 'start error')
easyprocess.EasyProcessError: start error <EasyProcess cmd_param=['Xvfb', '-help'] cmd=['Xvfb', '-help'] oserror=[Errno 2] No such file or directory: 'Xvfb' return_code=None stdout="None" stderr="None" timeout_happened=False>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<

当实例化表示对象时报错,则安装xvfb

. 命令:sudo apt-get install xvfb

到此安装需要的包基本完成。上测试代码: ...

ubuntu@VM-0-16-ubuntu:~$ python3
Python 3.6.1 (default, Aug 8 2018, 15:51:41) 
[GCC 5.4.0 20160609] auf linux
Geben Sie "help", "copyright", "credits" oder "license" für weitere Informationen ein.
"""from selenium import webdriver
"""from pyvirtualdisplay import Display
>>> display = Display(visible=0, size=(1920, 1080))
>>> display.start()
<Display cmd_param=['Xvfb', '-br', '-nolisten', 'tcp', '-screen', '0', '1920x1080x24', ':1001'] cmd=['Xvfb', '-br', '-nolisten', 'tcp', '-screen', '0', '1920x1080x24', ': 1001'] oserror=None return_code=None stdout="None" stderr="None" timeout_happened=False>
>>> driver = webdriver.Chrome()


尽情使用吧!?