【问题标题】:Installing and accessing chromedriver in aws lambda在 aws lambda 中安装和访问 chromedriver
【发布时间】:2022-10-02 18:12:53
【问题描述】:

我正在使用 Alexa 开发人员控制台制作此应用程序,该控制台利用 python selenium 帮助促进用户通过语音与网站进行交互。我的想法是在技能启动时实例化驱动程序。我对 AWS lambda 很陌生,不幸的是我无法让 Chromedriver 安装并正常工作。我以为我可以将它安装到 tmp 目录,然后尝试从那里访问它,但由于某种原因,每当我将路径传递给 webdriver 时,它都会返回“找不到 Chrome 二进制错误”。这是我所拥有的:

turn = 0
chrome_options = None
browser = None
iframe = None 
input_element = None

def initialize():
    global turn
    global chrome_options
    global browser
    global iframe
    global input_element
    turn = 1
    chrome_options = Options()
    chrome_options.add_argument(\"--window-size=500,600\")
    # chrome_options.add_argument(\"--headless\")
    browser  = webdriver.Chrome(ChromeDriverManager(path=\"/tmp\").install(),chrome_options=chrome_options)
    browser.get(\'https://www.bbc.co.uk/programmes/articles/1g84m0sXpnNCv84GpN2PLZG/the-game-30th-anniversary-edition\')
    time.sleep(10)
    iframe = browser.find_element(By.TAG_NAME, \"IFRAME\")
    browser.switch_to.frame(iframe)
    browser.find_element(By.ID, \'startgame\').click()
    time.sleep(10)
    input_element = browser.find_element(By.ID, \'command-input-capture\')

class LaunchRequestHandler(AbstractRequestHandler):
    \"\"\"Handler for Skill Launch.\"\"\"
    def can_handle(self, handler_input):
        # type: (HandlerInput) -> bool

        return ask_utils.is_request_type(\"LaunchRequest\")(handler_input)

     def handle(self, handler_input):
        speak_output = \'Hello\'
        initialize()
        return (
            handler_input.response_builder
                .speak(speak_output)
                .ask(speak_output)
                .response
        )

我相信它正在正确安装 chrome 驱动程序,但对于我的生活,我无法弄清楚为什么 ChromeDriverManager(path=\"/tmp\").install() 传递的路径不正确。

  • 您刚刚安装了 Chrome 驱动程序。我认为您也需要安装 chrome.exe 本身,不是吗?

标签: python selenium aws-lambda alexa-skill


【解决方案1】:

我认为您最好为此使用EC2。 您需要安装chrome,虚拟显示器(欺骗chrome,它有显示器)。 将所有这些安装在一个实例中并将其与其他服务连接。你应该很高兴。这也将大大节省您的时间。每次你的 lamdba 运行时,它都不需要重新安装。

1. 打开/连接到您的实例。

您可以使用控制台或通过 ssh。

2.安装点子

apt install -y python3 python3-pip

3.安装python包/库

pip3 install selenium

pip3 install webdriver_manager

pip3 install pyvirtualdisplay

4.安装铬

  • 铬依赖apt install -y libxss1 libappindicator1 libindicator7

  • 下载铬wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

  • dpkg 安装dpkg -i google-chrome*.deb

  • 如果失败,它会修复 apt install -y -f

安装chrome驱动

它已被弃用。无需硬安装。

测试代码

python3 main.py test

【讨论】:

    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2016-02-14
    • 2017-12-29
    • 2020-03-11
    • 1970-01-01
    • 2017-02-15
    相关资源
    最近更新 更多