我有一个<button>
在单击时打开文件浏览器的地方,方法是触发对隐藏<input type="file"
>的单击。(我在输入上监听change
事件以访问用户选择的文件。)
使用量角器,我如何检查文件浏览器是否在首次单击时打开<button>
?
我不<input type="file"
向用户公开 > 的原因是为了更好地控制样式,这可以通过<button>
.
我有一个<button>
在单击时打开文件浏览器的地方,方法是触发对隐藏<input type="file"
>的单击。(我在输入上监听change
事件以访问用户选择的文件。)
使用量角器,我如何检查文件浏览器是否在首次单击时打开<button>
?
我不<input type="file"
向用户公开 > 的原因是为了更好地控制样式,这可以通过<button>
.
这里的关键问题是您不需要检查是否正在打开文件对话框(实际上,selenium 无法控制或检查是否正在打开文件对话框) - 浏览器在单击“文件”时会做什么input
超出了您的应用程序范围。
相反,您可能想要检查,一旦您单击,就会在元素button
上触发“单击”事件。input
添加一个事件监听器并使用executeAsyncScript()
(未测试):
var button = element(by.css(".mybutton"));
var input = element(by.css(".myinput"));
var script = 'var button = arguments[0], ' +
' input = arguments[1], ' +
' callback = arguments[arguments.length - 1];' +
'input.addEventListener("click", function (e) { callback() });' +
'button.click()';
browser.executeAsyncScript(script, button, input);