【问题标题】:Selenium: Upload file for input type =- 'button'Selenium:输入类型的上传文件=-'button'
【发布时间】:2015-11-29 03:01:52
【问题描述】:

我正在尝试将文件上传到文件上传按钮。

输入元素的类型是“按钮”而不是“文件”。 HTML:

<input class="btn jsSelectFile" type="button" value="Select file"/>

因此使用SendKeys()时,文件上传不起作用。 我称之为下面的sn-p:

Browser.FindElement(By.XPath(XPath)).SendKeys(path);

它只是打开浏览器文件窗口而不选择文件。

有人知道如何上传上述输入类型的文件吗?谢谢。

【问题讨论】:

  • 元素的HTML是:
  • 这不是文件标签,你确定没有文件标签吗?
  • 我也遇到过这种情况,没有 type=file 来发送文件。跨度>
  • 它只是打开浏览器文件窗口,并没有选择文件。我在某些时候也有这种效果,使用相对文件路径。它适用于绝对文件路径。
  • 我使用了绝对文件路径,但无法将文件发送到按钮元素中。

标签: selenium-webdriver


【解决方案1】:

你有两个选择。

  1. 使用模拟键盘动作的机器人类,例如

    driver.findElement(By.id("SWFUpload_0")).click(); 机器人 r = new Robot(); r.keyPress(KeyEvent.VK_C); // C r.keyRelease(KeyEvent.VK_C); r.keyPress(KeyEvent.VK_COLON); // : (冒号) r.keyRelease(KeyEvent.VK_COLON); r.keyPress(KeyEvent.VK_SLASH); // / (斜线) r.keyRelease(KeyEvent.VK_SLASH); // 整个文件路径等

    r.keyPress(KeyEvent.VK_ENTER); // 最后按 Enter 确认 r.keyRelease(KeyEvent.VK_ENTER);

    1. 在输入按钮上添加一个 type="file"W 的输入字段,并将不透明度设置为 0%,这样该元素就不会显示给用户,他们认为他们正在选择按钮。然后您将能够发送文件位置。有关此示例,请参阅 http://www.zamzar.com/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-26
    • 2014-10-23
    • 2013-07-02
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2012-09-24
    相关资源
    最近更新 更多