【发布时间】: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