2

我有一个<button>在单击时打开文件浏览器的地方,方法是触发对隐藏<input type="file">的单击。(我在输入上监听change事件以访问用户选择的文件。)

使用量角器,我如何检查文件浏览器是否在首次单击时打开<button>

我不<input type="file"向用户公开 > 的原因是为了更好地控制样式,这可以通过<button>.

4

1 回答 1

2

这里的关键问题是您不需要检查是否正在打开文件对话框(实际上,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);
于 2015-04-24T18:30:18.940 回答