hir*_*tan 7 clipboard selenium selenium-chromedriver protractor
我想使用 Protractor 测试一个使用剪贴板 api访问系统剪贴板的 Angular 应用程序。问题在于,在执行测试时,Chromium 浏览器会要求用户授予访问剪贴板的权限。我无法从测试中关闭此框,因为这既不是 DOM 元素也不是警报窗口,而且似乎无法从 Protractor 访问它。
我试图在量角器设置中在 Chrome 中自动授予权限。首先,我寻找了一个可以执行此操作的命令行开关,但它似乎不存在。
然后我找到了一种显然有效的方法,但我不知道它是否稳定:使用webdriver 的 chrome 驱动程序的Capabilities在 Chrome 用户配置文件中设置“异常” 。基本上,我在量角器配置文件中添加以下几行:
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'prefs': {
'profile.content_settings.exceptions.clipboard': {
'http://localhost:8000,*': {'last_modified': Date.now(), 'setting': 1}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我通过查看Default/Preferences
Chrome 配置文件中的内部文件找到了该值。
它现在对我有用,但我不想使用未记录的功能,因为它们可以随时更改,恕不另行通知。你知道这样做的更好方法吗?谢谢。
如果有人想用 C# 做类似的事情,我已经调整了代码:
var options = new ChromeOptions();
var clipboardException = new Dictionary<string, object> {
{"[*.]myurl.com,*",
new Dictionary<string, object> {
{"last_modified", DateTimeOffset.Now.ToUnixTimeMilliseconds()},
{"setting", 1}
}
}
};
options.AddUserProfilePreference("profile.content_settings.exceptions.clipboard", clipboardException);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1720 次 |
最近记录: |