在Chrome浏览器中登录后,我从浏览器中获取了一个保存密码弹出窗口。我想处理该弹出窗口并希望使用Robot Framework关闭它 Browse popup window 感谢
答案 0 :(得分:1)
之前已经使用纯Python上下文询问并回答了这个问题。对于一个有效的机器人示例,这个答案在SO post继续。
您看到的弹出窗口是由Chrome本身生成的。这不是HTML警报。因此,Selenium2Library关键字都不会对其产生任何影响。也不会设置cookie或javascript。
可以使用chrome://settings链接手动设置这些设置。转到高级设置,然后向下滚动到密码和表单。取消第二项,这将阻止弹出窗口。
要在Robot Framework中自动执行相同操作,需要使用其他首选项启动WebDriver:
Chrome With Preferences
${chrome_options} = Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
${prefs} Create Dictionary credentials_enable_service=${false}
Call Method ${chrome_options} add_experimental_option prefs ${prefs}
Call Method ${chrome_options} add_argument --disable-infobars
Create WebDriver Chrome chrome_options=${chrome_options}
Go To https://secure.url.com
此处的关键内容为credentials_enable_service=${false}
,其中使用${false}
而不是 false 非常重要,因为后者被解释为字符串,然后作为<添加到Chrome em>“false”而不是正确的值false
。
第二项是不将首选项添加为参数,而是通过将dictionary
分配给prefs
对象的ChromeOptions()
属性,如下所示:{ {1}}
答案 1 :(得分:0)
我认为这不是真实的(因为它是浏览器的属性。)你有问题吗?唯一可以忽略的是javascript警报,可能最好的办法是:
${alert} = Get Alert Message dismiss=${dismiss}
我在测试中使用Run Keyword和Ignore Error进行了这项操作,这使我能够获取可选的js警报内容和调试(也可以解析它,可以执行套件的其余部分。)
答案 2 :(得分:0)
三种方法要做。
1)很多时候,一旦弹出窗口出现在屏幕上并且消失了,就会设置一个cookie,你可以在开发者控制台中查看 - &gt;应用。如果您使用添加Cookie 关键字将此Cookie设置为值。弹出窗口不会出现。
2)如果首先不起作用,那么打开开发人员工具并从开发人员工具监控本地商店 - &gt;应用程序并关闭弹出窗口。 U会注意到某个变量的值存储在本地存储中。您可以使用脚本设置该值,并且在执行变量时不会看到弹出窗口。
3)如果第一个和第二个不起作用,则弹出窗口很可能与javascript变量相关联。使用执行Javascript 关键字设置java脚本变量,您的问题必须解决。
与您的开发团队交谈,了解哪种方式适合您。