使用量角器和Webdriver在自动测试中启用剪贴板

时间:2018-12-07 12:33:34

标签: selenium protractor selenium-chromedriver clipboard

我想用量角器测试一个使用clipboard api访问系统剪贴板的Angular应用程序。问题在于,执行测试时,Chromium浏览器会要求用户授予访问剪贴板的权限。我无法从测试中关闭此框,因为它既不是DOM元素也不是警报窗口,而且似乎也不是从量角器访问它的任何方式。

clipboard permissions

我尝试在量角器设置中自动授予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} } } } } 文件中查找了该值。

它现在对我有用,但是我不想使用未记录的功能,因为它们可以随时更改而无需另行通知。您知道更好的方法吗?谢谢。

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);