amazon-web-services - 无法在 aws cloud9 中使用 Python 中的 selenium 运行 chromedriver
问题描述
在将 selenium、chrome 和 chromedriver 安装到 aws cloud9 后,我尝试执行 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.安装selenium pip install selenium -t ./
2.安装chrome curl https://intoli.com/install-google-chrome.sh | 重击
3.下载chromedriver 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
解决方案
我不确定您是否正确指定了 Chromedriver 的 executable_path,我认为以下应该可以工作:
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)
推荐阅读
- .htaccess - 带有随机数的 Htaccess 重定向
- javascript - 从另一个变量的子数组中获取数据
- asp.net-core - .Net Core API 方法未调用
- javascript - 在 Vuex 突变中使用 `Vue.nextTick` 是否违反惯例?它会破坏一些东西吗?
- javascript - 在 Firefox 浏览器中默认滚动到 div 的底部
- deployment - NetSuite 自定义模块入口点错误?
- unity3d - “警告日志”会影响 Unity3D 中的应用程序性能吗?
- python - 并行化后python函数运行更慢
- cron - 如何在 Shopware 5 中设置 Cronjob 以自动导入数据
- python - 根据条件更改一些值