【发布时间】:2022-10-14 10:40:01
【问题描述】:
我正在尝试将来自 AWS 管理控制台的抓取数据合并到一个自动化脚本中,出于某种原因,我公司的 AWS 支持 Microsoft 多因素身份验证系统。手动转到控制台链接时这不是问题,因为浏览器记得过去我已经完成了 MFA 过程,并且我被直接引导到控制台。当导航到 Selenium 中的同一链接时,我被带到 MFA 页面,询问我是否允许发短信/打电话给我的电话。
我了解到这可以通过在 Webdriver 选项中设置 Chrome 配置文件来解决。
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=/Users/myuser/Library/Application Support/Google/Chrome/")
即使设置了这个,我仍然每次都被重定向到 MFA 页面。我会以错误的方式解决这个问题吗?有没有一种简单的方法可以检查 Chrome 配置文件是否确实按预期工作?
【问题讨论】:
-
尝试通过使用 --user-data-dir="/tmp/dev-chrome" 运行 chrome 创建专用目录,传递 MFA 并提供它以确保它不是权限问题或路径中的空间问题。
-
我还看到,在 Mac 中,路径是“/Users/user/Library/Application Support/Google/Chrome/Default”,所以首先尝试在末尾添加 Default
-
@Roeften 嘿,这是迄今为止最好的反馈。让我的脚本在短期内工作,但是当我重新启动计算机时 temp/dev-chrome 配置文件重置。不确定使用此临时配置文件和指向现有配置文件之间的区别(重启后仍然超过 MFA)
-
@Roeften 只是一些澄清......我已经尝试将默认值放在路径中,并且还使用 user_data 路径,因为有人在下面做出了回应,没有区别。到目前为止,唯一通过 MFA 的是将配置文件设置为 --user-data-dir="/tmp/dev-chrome" 并通过 MFA 一次。但是每次重新启动计算机时都这样做很烦人
-
使用一些持久化路径,tmp 通常不会持久化。例如 /Users/myuser/chromedev 或 /var/chomedev。我不熟悉 MacO,所以我不知道是否存在权限问题。或者导航到 /Users/myuser/Library/Application Support/Google/Chrome/ 并确保您使用的是其中列出的正确配置文件名称(区分大小写)
标签: python selenium google-chrome selenium-webdriver multi-factor-authentication