机器人框架处理身份验证弹出窗口

nay*_*onn 2 python selenium robotframework

我需要通过按 Enter 键或 esc 键或单击取消按钮来使用 Robot Framework 处理 chrome 浏览器中弹出的身份验证。像这样在此输入图像描述

我正在尝试使用 SeleniumLibrary 按键,

Press Keys    None    ESC
Run Code Online (Sandbox Code Playgroud)

但这不起作用

有人知道如何解决这个问题吗?谢谢

Tod*_*kov 5

遗憾的是,您无法通过 Selenium 进行任何操作。该窗口来自所谓的基本身份验证,其中用户需要输入用户名和密码,并在 http 级别进行处理。
您看到的控件 - 对话框 - 是一个操作系统组件,是浏览器可执行文件本身的一部分;因此,Selenium 无法与它交互 - 它被沙箱化(为了安全起见)。

有几种解决方法;基本身份验证的凭据可以通过 url 传递 - 如果目标系统没有明确禁止这样做。这是通过特殊格式的 url 完成的:

http://username:password@example.com/
Run Code Online (Sandbox Code Playgroud)

另一种是使用桌面自动化库 - AutoIt,或 Java 的 Robot。但这有两个(对我来说巨大的)缺点 - 该解决方案将取决于操作系统(例如,针对 Windows 的解决方案,对于 Mac、Linux 则不同),而且主要 - 你不能在远程 selenium 会话中使用它 - 你必须拥有它桌面自动化在远程计算机中运行,并截获桌面会话,并可从您的执行计算机访问。