我想用量角器测试一个使用clipboard api访问系统剪贴板的Angular应用程序。问题在于,执行测试时,Chromium浏览器会要求用户授予访问剪贴板的权限。我无法从测试中关闭此框,因为它既不是DOM元素也不是警报窗口,而且似乎也不是从量角器访问它的任何方式。
我尝试在量角器设置中自动授予Chrome权限。首先,我寻找了一个能做到这一点的command line switch,但它似乎不存在。
然后,我发现了一种显然可行的方法,但是我不知道它是否稳定:使用Capabilities of the chrome driver of webdriver在Chrome用户配置文件中设置“例外”。基本上,我在量角器配置文件中添加以下几行:
Character
我通过在Chrome个人资料中的 capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'prefs': {
'profile.content_settings.exceptions.clipboard': {
'http://localhost:8000,*': {'last_modified': Date.now(), 'setting': 1}
}
}
}
}
文件中查找了该值。
它现在对我有用,但是我不想使用未记录的功能,因为它们可以随时更改而无需另行通知。您知道更好的方法吗?谢谢。
答案 0 :(得分:1)
如果有人想用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);