1

我需要从 Selenium 自动单击“浏览”按钮。

在此处输入图像描述

为此,我尝试过

driver.findElement(By.xpath("//*[@id=\"dnn_ctr383_View_filename\"]")).click();

driver.findElement(By.cssSelector("Css path")).click();

两者都给了我org.openqa.selenium.NoSuchElementException: Unable to locate element:例外。

我在这里看到作者建议使用 AutoIT 的链接,但在第 2 步中,作者创建的脚本是针对 IE 的。有人可以建议,我如何在Firefox中自动单击“浏览”按钮?

任何帮助深表感谢。

4

2 回答 2

3

直接把文件路径传给id,像这样

driver.findElement(By.id("dnn_ctr383_View_filename")).sendKeys("C:\\path\\to\\file");

上述步骤是您前两个步骤的答案

  1. 点击浏览
  2. 选择要上传的文件

对于第三步(单击上传),查看屏幕截图我没有看到任何显示“上传”的按钮。因此,只需单击“保存”,我假设您的文件将成功上传。

于 2013-01-10T14:05:52.930 回答
0

您需要在这里考虑两件事:

  1. 单击浏览器按钮:通常由警报或弹出窗口处理,如果驱动程序无法通过 xpath 找到元素(您已从 firebug 或 chrome 的检查元素中获取),您应该考虑在页面源中查找 iframe。如果一个元素完全在不同的框架中,你需要切换框架才能找到这样的元素

    WebElement frame = driver.findElementById("name_of_iframe");

    driver.switchTo().frame(fr);

现在您可以像您一样使用 xpath 或 css 选择器找到您的元素。完成后,您可以通过以下方式移出框架:-driver.switchTo().defaultContent();

  1. 从桌面上传文件:由于 selenium 仅适用于您从驱动程序调用的浏览器会话中的 html,因此它无法在您的桌面上执行操作。一旦您能够单击浏览器按钮,您就可以使用自动它(仅适用于在 windows 上)或Sikuli(适用于 mac、linux、windows 甚至 android)根据上传按钮的位置模拟您的事件。

希望这可以帮助

于 2016-05-28T17:38:17.110 回答