Невозможно запустить chromedriver, используя селен в Python в облаке aws9 - PullRequest
1 голос
/ 09 июля 2019

После того, как я установил селен, хром и chromedriver в облако aws9, я попытался запустить chromedriver. Но произошла ошибка PATH.

Я проверил, что путь к chromedriver правильный. И я не знаю, почему произошла эта ошибка.

aws:~/environment/seleniumTest $ ll /home/ec2-user/environment/seleniumTest/chromedriver
-rwxr-xr-x 1 ec2-user ec2-user 8496784 Sep 13  2018 /home/ec2-user/environment/seleniumTest/chromedriver

Есть ли способы решения этой проблемы?

Мои шаги, как показано ниже,

1.установить селен pip install selenium -t ./

2. установить хром локон https://intoli.com/install-google-chrome.sh | Баш

3. Скачать хромедривер curl -SL https://chromedriver.storage.googleapis.com/2.42/chromedriver_linux64.zip> chromedriver.zip распаковать chromedriver.zip

4. Выполните код Python, как показано ниже

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def lambda_handler(event, context):
    options = Options()
    options.add_argument('--headless')

    driver = webdriver.Chrome('/home/ec2-use/environment/seleniumTest/chromedriver', chrome_options=options)

    return(0)

Я получил сообщение об ошибке «Исполняемый файл chromedriver должен быть в PATH».

Response
{
    "errorMessage": "Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home\n",
    "errorType": "WebDriverException",
    "stackTrace": [
        [
            "/var/task/seleniumTest/lambda_function.py",
            9,
            "lambda_handler",
            "driver = webdriver.Chrome('/home/ec2-use/environment/seleniumTest/chromedriver', chrome_options=options)"
        ],
        [
            "/var/task/selenium/webdriver/chrome/webdriver.py",
            73,
            "__init__",
            "self.service.start()"
        ],
        [
            "/var/task/selenium/webdriver/common/service.py",
            83,
            "start",
            "os.path.basename(self.path), self.start_error_message)"
        ]
    ]
}

Function Logs
Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
: WebDriverException
Traceback (most recent call last):
  File "/var/task/seleniumTest/lambda_function.py", line 9, in lambda_handler
    driver = webdriver.Chrome('/home/ec2-use/environment/seleniumTest/chromedriver', chrome_options=options)
  File "/var/task/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
    self.service.start()
  File "/var/task/selenium/webdriver/common/service.py", line 83, 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

1 Ответ

0 голосов
/ 09 июля 2019

Я не уверен, что вы правильно указываете путь к исполняемой_программе для Chromedriver, я думаю, что ниже должно работать:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def lambda_handler(event, context):
    options = Options()
    options.add_argument('--headless')

    driver = webdriver.Chrome(executable_path='/home/ec2-user/environment/seleniumTest/chromedriver', chrome_options=options)

    return(0)
...