【问题标题】:Handling load file dialog with selenium webdriver使用 selenium webdriver 处理加载文件对话框
【发布时间】:2014-05-19 17:18:24
【问题描述】:

我正在尝试在 selenium webdriver 的帮助下处理“选择要加载的文件”对话框。 这是 HTML:

<form class="upload">
    <button class="btn" data-capture="" type="button">Browse</button>
    <input class="hide" type="file" accept="..." multiple="" data-file-input=""/>
</form>

我想做什么:

  1. 移除 class='hide';
  2. 带有文件路径的发送键,在取消隐藏元素后;
  3. 隐藏元素。

这是执行此操作的代码:

JavascriptExecutor js = (JavascriptExecutor) webDriver;
js.executeScript("$('.hide:not(.layout)').removeClass('hide')");
(webDriver.findElement(By.cssSelector(".upload>input"))).sendKeys("path_to_file");
js.executeScript("$('.hide:not(.layout)').addClass('hide')");

但我在第 3 行遇到异常:

"Runtime.evaluate threw exception: TypeError: Cannot read property 'click' of null"

我做错了什么?

【问题讨论】:

  • 您当时是打开了 Chrome 开发者控制台还是偶然打开了 Firefox 开发者控制台?
  • 是否 (webDriver.findElement(By.cssSelector(".upload>input"))) 找到一个元素?也许等待它首先出现。

标签: java javascript selenium selenium-webdriver


【解决方案1】:

谢谢你,user1433852。看起来问题确实与等待有关。添加等待ajax后,就开始工作了!

【讨论】:

    猜你喜欢
    • 2018-07-08
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 2019-06-05
    相关资源
    最近更新 更多