Robotframework 如何使用Robot框架捕获警报框

Robotframework 如何使用Robot框架捕获警报框,robotframework,alert,Robotframework,Alert,我试图捕获警报屏幕截图,但屏幕中没有显示警报框 例如: AlertTest Open Browser http://www.seleniummaster.com/robotframeworktest/alerttest.html ff Sleep 5s Click Button name=alert_button sleep 10s capture page screenshot Alert Should Be Pre

我试图捕获警报屏幕截图,但屏幕中没有显示警报框

例如:

AlertTest
    Open Browser    http://www.seleniummaster.com/robotframeworktest/alerttest.html    ff
    Sleep    5s
    Click Button    name=alert_button
    sleep    10s
    capture page screenshot
    Alert Should Be Present    This is an alert box
    Close Browser

如果有人有经验,请帮助我。

据我所知,无法使用SeleniumLibrary捕获警报,因为警报不在页面的一部分

我们使用内置的屏幕截图库和KW来解决这个问题


您可以尝试考虑是否满足您的要求。

< P>您所看到的行为是由于警报应该存在:关键字自动接受警报。它发生得如此之快,以至于如果经常看起来它从未发生过。通过添加可选参数
action=LEAVE
,您可以在不修改行为的情况下进行检查。显示其他选项

*** Settings ***
Library    SeleniumLibrary    

*** Test Cases ***
AlertTest
    Open Browser    http://www.seleniummaster.com/robotframeworktest/alerttest.html    chrome
    Sleep    2s
    Click Button    name=alert_button
    Alert Should Be Present    action=LEAVE    text=This is an alert box
    Handle Alert    action=ACCEPT
    Close Browser
虽然这将解决您的问题:我看不出问题的警报部分,但您将遇到下一个问题。使用SeleniumLibrary拍摄屏幕截图将不起作用,因为现在存在警报。如前所述,这可以通过关键字处理


请仔细阅读本节,因为此库依赖于特定于操作系统的Python模块。

我认为问题在于屏幕截图中没有捕捉到警报框,但警报框的断言关键字中没有捕捉到警报框。这个答案与OP的预期不符。@A.Kootstra我认为这不是因为它速度太快,而是因为警报在这不是页面的一部分,因此它使我无法捕获警报框。当遵循提供的代码示例时,这是您将遇到的第一个问题。正如在添加的部分中强调的那样,这将导致第二个问题。@A.Kootstra感谢您的帮助,现在我使用ScreenCapLibrary并编辑一些关于screen name的python代码,以便与SelenuimLibrary的关键字“Capture Page Screenshot”一起工作。但是它有一个小问题,因为测试库用于在机器上截图。@SawitreeCha在我看来,这与这个问题中的问题不同。出于这个原因,我建议创建一个新问题,并提供一个完整的代码示例。