Skip to main content
 首页 » 编程设计

robotframework中如何在机器人框架中处理基于网络的警报或弹出窗口

2025年05月04日86tuyile006

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

For Image, please click here

正如您从图像中看到的,我想单击“允许”按钮,这是继续进行测试所必需的。

谁能知道如何通过机器人测试脚本单击浏览器确认弹出窗口的“允许”按钮。

提前致谢!

我的项目结构是

enter image description here

请您参考如下方法:

可以使用 chrome://settings/ 查看驱动此功能的 Chrome 设置。 。这些设置存储在 Chrome 配置文件中。可以使用 chrome://version/ 找到此配置文件的路径。在 preferences 文件中可以找到设置的 JSON 结构。

在下面的 Robot Framework 示例中,脚本打开 Google,然后单击麦克风图标开始语音搜索。在正常情况下,这会导致弹出麦克风访问权限的窗口。

分配被分成两个变量的原因是因为 url 包含被视为分隔符的字符 (.://)。然后通过手动创建结构的该部分来克服这个问题:创建字典 https://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