如何在机器人框架中关闭浏览器插件警报

Posted

技术标签:

【中文标题】如何在机器人框架中关闭浏览器插件警报【英文标题】:How to dismiss browser plugin alert in Robot framework 【发布时间】:2018-11-06 18:41:35 【问题描述】:

在我们的应用程序中,当我在网页之间导航时,系统显示附加Browser Confirmation Alert。我正在使用机器人框架来自动化。我尝试使用“处理警报”关键字接受或解除警报。但我在报告中观察到“未找到警报”错误。也禁用右键单击以在警报窗口中查找 web 元素。

*** Settings ***
Library           Selenium2Library
Test Teardown    Close Application

*** Variables ***

*** Test Cases ***
Dismiss Alert
    Open Aplication
    Click WebElement    $serchXpath
    Click WebElement    $navigateXpath
    Wait Until Element Is Visible    $Inv_xpath_all_rows    timeout=60 seconds
    Handle Alert    action=DISMISS    timeout=60 s

失败:Alert not found in 5 seconds.在Handle Alert action=DISMISS timeout=60 s这一行

我是自动化世界的新手,请求您帮助我。非常感谢。

【问题讨论】:

使用您的代码尝试和相关 html 更新问题 您好 GPT14,我已添加代码。谢谢你 我没有看到您的问题的任何附件。 嗨,Bryan,我放置了附件链接。谢谢。 能否请您将附件作为内嵌图片包含在内,这样就无需点击? 【参考方案1】:

查看附加的弹出窗口的屏幕截图,您似乎正在处理“外部协议请求”框。您无法使用 selenium webdriver API 与此框进行交互。相反,您需要使用 ChromeOptions 或编辑 Chrome 配置文件来处理此问题。这是一个 SO answer,描述了如何去做。 要使用 Selenium2Library 在 RobotFramework 中处理相同的问题,请查看此内容。

$chromeOptions=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
$exclude=    Create Dictionary    "fasp"=True
$prefs=    Create Dictionary    protocol_handler.excluded_schemes=$exclude
Call Method    $chromeOptions    add_experimental_option    prefs    $prefs
Create Webdriver    Chrome    chrome_options=$chromeOptions

来源:https://support.asperasoft.com/hc/en-us/articles/216660968-How-to-unblock-the-launching-of-Connect-3-6-5-in-Chrome

【讨论】:

我试过上面的例子,我仍然面临同样的错误。在我看来,机器人无法识别警报。感谢 GPT14 的回复。 @Madhu:我已经根据你的弹出屏幕截图编辑了我的答案。

以上是关于如何在机器人框架中关闭浏览器插件警报的主要内容,如果未能解决你的问题,请参考以下文章

我需要弄清楚如何在 iOS 8 中关闭徽章、声音和警报

在alertview中选择取消按钮时如何从数组中关闭所有alertview?

如何在codeigniter中关闭浏览器来销毁会话

通过点击外部或取消按钮在 iOS 中关闭警报视图

如何在 django 中关闭浏览器上的会话

如何在js中关闭用户浏览器选项卡/窗口[重复]