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