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

2022-03-15 00:00:00 python selenium robotframework

问题描述

我需要通过按Enter键或Esc键或单击Cancel按钮来处理带有Robot Framework的Chrome浏览器中的身份验证弹出窗口。 像这样

我正在尝试使用SeleniumLibrary按键,

Press Keys    None    ESC

但它不起作用

有人知道如何解决此问题吗?谢谢您


解决方案

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

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

http://username:password@example.com/

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

相关文章