Robotframework 如何在robot框架中处理基于web的警报或弹出窗口?

Robotframework 如何在robot框架中处理基于web的警报或弹出窗口?,robotframework,Robotframework,我使用Robot IDE创建机器人自动化测试脚本。对于我的测试,当我启动音频呼叫时,浏览器会通过“允许”和“阻止”按钮请求许可。因此,由于它是一个基于web的警报/弹出对话框,我无法在我的机器人脚本中访问它。如果我手动单击“允许”按钮,则它将继续测试并成功通过,但我需要手动单击它 正如你从图片中看到的,我想点击Allow按钮,这是进行测试所必需的 因此,任何人都知道如何通过机器人测试脚本单击浏览器确认弹出窗口的“允许”按钮 提前谢谢 我的项目结构是 可以使用查看驱动此功能的Chrome设置。这

我使用Robot IDE创建机器人自动化测试脚本。对于我的测试,当我启动音频呼叫时,浏览器会通过“允许”和“阻止”按钮请求许可。因此,由于它是一个基于web的警报/弹出对话框,我无法在我的机器人脚本中访问它。如果我手动单击“允许”按钮,则它将继续测试并成功通过,但我需要手动单击它

正如你从图片中看到的,我想点击Allow按钮,这是进行测试所必需的

因此,任何人都知道如何通过机器人测试脚本单击浏览器确认弹出窗口的“允许”按钮

提前谢谢

我的项目结构是


可以使用查看驱动此功能的Chrome设置。这些设置存储在Chrome配置文件中。可以使用找到此配置文件的路径。在
首选项
文件中可以找到设置的JSON结构

在下面的机器人框架示例中,脚本打开Google,然后单击麦克风图标以启动语音搜索。在正常情况下,会弹出一个麦克风访问窗口

分配被分成两个变量的原因是url包含被视为分隔符的字符(
://
)。然后通过手动创建该部分结构来克服这一问题:
createdictionaryhttps://www.google.nl:443,*=${SiteOptions}

这就产生了理想的偏好结构:

...
"profile":{
     ...
     "content_settings": {
         ...
         "exceptions": {
            ...
            "media_stream_mic":{
               "https://www.google.nl:443,*":{
                  "last_used":1492245954.955647,
                  "setting":1
               }
            },
机器人脚本:

*** Settings ***
Library    Selenium2Library    

*** Test Cases ***

 Chrome With Preferences
    ${chrome_options} =     Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver

    &{SiteOptions}         Create Dictionary    last_used=${1470931206}     setting=${1}
    &{media_stream_mic}    Create Dictionary    https://www.google.nl:443,*=${SiteOptions}
    ${prefs}               Create Dictionary    profile.content_settings.exceptions.media_stream_mic=${media_stream_mic}

    Call Method    ${chrome_options}    add_experimental_option    prefs    ${prefs}

    Create WebDriver    Chrome    chrome_options=${chrome_options}

    Go To    https://google.com

    Click Link    css=#gs_st0 > a    # Click the search microphone icon.

    sleep     5s
    [Teardown]    Close Browser

你试过使用这个关键字吗?@BryanOakley,是的,我用过这个关键字,但它给出了错误“没有警报”,并且没有通过测试用例可能重复@A.Kootstra,你知道我如何在Robot框架中使用它吗?我有我的项目结构,由我的上级按照Jenkins设计,我不知道在哪里放置和设置首选项。这需要更多的信息来回答,实际上是一个单独的问题。上面的脚本是测试代码,我怀疑它存储在项目的./tests文件夹中。在
.robot
文件中查找
Create Webdriver
关键字,这是进行更改的位置。如果你发现了多个结果,那么这也意味着要改变很多事情。Kootstra感谢您的快速回复。我将在我的项目中尝试您提供的解决方案。通过使用以下代码,它解决了我的问题${options}=Evaluate sys.modules['selenium.webdriver'].ChromeOptions()sys,selenium.webdriver调用方法${options}添加参数开始最大化调用方法${options}添加参数--为媒体流调用方法${options}使用假ui添加参数${executor}使用假设备=Evaluate str(“${HOME\u URL}”)创建Web驱动程序${CHROME\u BROWSER}CHROME\u options=${options}转到${HOME\u URL}