繁体   English   中英

在 GCP Cloud Run 上使用 Selenium 运行 Python 脚本时出现问题

[英]Issue when running Python script with Selenium over GCP Cloud Run

我有这个 python 脚本,我需要在其中登录并从身份验证服务器检索 access_token,过程如下,使用给定的 URL 导航到身份验证服务器,在相应字段中嵌入给定的用户名和密码,单击“登录”, access_token应该在刷新后的URL中,所以等待5秒再取出更新后的URL,切片得到access_token。

在我的本地机器上,我能够检索令牌并成功完成脚本。

但是,我想将此脚本部署到 Cloud Run,因此我创建了 DockerFile 和 python 依赖项“requirment.txt”,我认为这是准确的。

整个部署完成后,我尝试像往常一样从 Cloud Scheduler 运行服务,但出现此错误

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="email"]"}
运行服务后出错

我本地机器上的 Python 代码,完美运行在此处输入图像描述

DockerFile 部署到云端运行DockerFile

Python 要求和依赖关系要求.txt

更新:第二天发现问题又来了,运行失败:/同样的错误第二天失败

前一天的成功前一天的成功

我想通了,显然,我的隐式等待不会在 GCP 上被捕获,但会在我的本地工作,这很奇怪,我需要实现一个显式的 - 一行这样的。

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait


WebDriverWait(browser, 50).until(EC.presence_of_element_located((By.ID, "app")))

在此处输入图像描述

基本上它所做的就是等到刷新页面并返回下一页中的元素以将 URL 变量提供给我的代码的切片部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM