aws lambda:如何修复 'geckodriver' 可执行文件需要在 PATH 中”
aws lambda: How to fix 'geckodriver' executable needs to be in PATH"
所以我尝试在 aws lambda 运行时使用 firefox Python3.6 我已经按以下顺序使用层添加了我的依赖项:selenium3.14、geckodriver25 和 firefox 69 二进制文件,以创建我的 webdriver 实例 I我正在使用此代码:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
path = '/tmp/'
def start_browser(url, headless=True):
fp = webdriver.FirefoxProfile()
options = Options()
if headless==True:
options.headless = True
fp.set_preference("browser.preferences.instantApply",True)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/xls, application/vnd.ms-excel")
fp.set_preference("browser.helperApps.alwaysAsk.force",False)
fp.set_preference("browser.download.dir", path)
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
browser = webdriver.Firefox(
options=options,
executable_path="/opt/geckodriver",
log_path="/tmp/geckodriver.log",
firefox_profile=fp,
firefox_binary="/opt/firefox/firefox"
)
browser.get(url)
return browser
我的函数执行了,但是我在从 aws 控制台测试时得到了这个响应
{
"message": "Your function executed unsuccessfully!",
"event": "Message: 'geckodriver' executable needs to be in PATH. \n"
}
我需要将 lambda 依赖项的路径从 "/opt/my_dependency"
更改为 "/opt/python/my_dependency"
所以我尝试在 aws lambda 运行时使用 firefox Python3.6 我已经按以下顺序使用层添加了我的依赖项:selenium3.14、geckodriver25 和 firefox 69 二进制文件,以创建我的 webdriver 实例 I我正在使用此代码:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
path = '/tmp/'
def start_browser(url, headless=True):
fp = webdriver.FirefoxProfile()
options = Options()
if headless==True:
options.headless = True
fp.set_preference("browser.preferences.instantApply",True)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/xls, application/vnd.ms-excel")
fp.set_preference("browser.helperApps.alwaysAsk.force",False)
fp.set_preference("browser.download.dir", path)
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
browser = webdriver.Firefox(
options=options,
executable_path="/opt/geckodriver",
log_path="/tmp/geckodriver.log",
firefox_profile=fp,
firefox_binary="/opt/firefox/firefox"
)
browser.get(url)
return browser
我的函数执行了,但是我在从 aws 控制台测试时得到了这个响应
{
"message": "Your function executed unsuccessfully!",
"event": "Message: 'geckodriver' executable needs to be in PATH. \n"
}
我需要将 lambda 依赖项的路径从 "/opt/my_dependency"
更改为 "/opt/python/my_dependency"