如何使用Robot Framework自动化网站浏览器通知授权操作?现有代码未完成授权且窗口异常
解决浏览器通知授权自动化的问题
嘿,我来帮你搞定这个浏览器通知授权的自动化难题!咱们先捋清楚你之前代码的问题:你用的--disable-notifications参数其实是直接把所有通知提示给关掉了,根本不是自动授权允许通知——这就难怪它没执行授权操作,还可能因为参数冲突导致窗口出现异常行为。
要实现自动授权通知而不是禁用,咱们得通过Chrome的偏好设置(prefs)来预先配置权限,让浏览器默认允许通知请求,这样就不会弹出授权弹窗,直接完成授权了。下面是调整后的Robot Framework代码:
*** Settings *** Library SeleniumLibrary *** Test Cases *** Automate Notification Permission # 创建ChromeOptions对象 ${options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys # 配置全局通知权限:1=允许,2=拒绝,0=默认提示 ${prefs}= Create Dictionary profile.default_content_setting_values.notifications=1 # 将偏好设置添加到ChromeOptions Call Method ${options} add_experimental_option prefs ${prefs} # 添加常用参数,避免窗口异常 Call Method ${options} add_argument --start-maximized Call Method ${options} add_argument --disable-infobars Call Method ${options} add_argument --disable-extensions # 创建Chrome驱动并打开目标网站 ${driver}= Create Webdriver Chrome options=${options} Go To https://your-target-website.com
进阶:仅给特定网站授权
如果你不想全局允许所有网站的通知,只想给目标网站授权,可以修改prefs的配置,精准指定域名:
# 配置特定网站的通知权限,[*.]匹配所有子域名 ${prefs}= Create Dictionary profile.content_settings.exceptions.notifications."[*.]your-target-website.com,*".setting=1
为什么之前的代码没用?
--disable-notifications是直接禁用所有通知请求,完全跳过授权流程,和你想要的“自动授权”不是一回事;- 窗口异常大概率是参数组合冲突导致的,现在用偏好设置替代禁用参数后,配合
--start-maximized就能正常保持窗口最大化了。
内容的提问来源于stack exchange,提问作者Renatoars8
相关产品推荐
相关产品推荐

