web-dev-qa-db-ja.com

pythonスクリプト用にUbuntuでChromedriverを有効にする方法は?

スケジュールされたタスクでは、Selenium Webdriverをpythonスクリプトで実行する必要があります。

私は次の解決策を試しました:

  1. https://stackoverflow.com/questions/50117377/Selenium-with-chromedriver-doesnt-start-via-cron

しかし、問題は解決していません。

Chromdriverの場所:

~/Documents/Python/Chromedriver/chromedriver
1
Akshat Zala

Cronでフルパスを指定します。

次のcronジョブには次のものが含まれます。

  • ヘッドレスモード を使用しない場合に備えて、DISPLAY変数を指定してディスプレイにアクセスします。取得するには$ env | grep DISPLAYを使用してください。
  • PATHへのパスを指定したchromedriver変数。 chromedriver/usr/local/binにコピーしました
  • python3.8への完全パス
  • pythonスクリプトへのフルパス

$ crontab -e

* * * * * export DISPLAY=:0; PATH=$PATH:/usr/local/bin; /usr/bin/python3.8 /home/user/PycharmProjects/seleniumtest/seltest.py build

あなたの場合、あなたのクロムドライバーの場所へのパスを指定してください:

* * * * * export DISPLAY=:0; PATH=$PATH:/home/user/Documents/python/Chromedriver; /usr/bin/python3.8 /home/user/PycharmProjects/seleniumtest/seltest.py build

注:次のパラメーターを使用してPyCharmでpythonプロジェクトを作成しました:

enter image description hereenter image description hereenter image description here

スクリプトは here から取得されます:

from Selenium import webdriver
from Selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()

さらに、いくつかのパッケージをインストールする必要があります。

$ Sudo apt install python3-pip
$ pip3 install Selenium
$ cd ~/Downloads
$ unzip chromedriver_linux64.Zip
$ Sudo cp chromedriver /usr/local/bin/
1
Gryu