自动化"浏览" Selenium中的按钮事件

时间:2013-01-10 12:34:31

标签: selenium automation automated-tests selenium-webdriver xpath

我需要自动化"浏览"从Selenium点击按钮。

enter image description here

为此,我尝试了

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:例外。

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

直接将文件路径发送到id,如此

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

上一步是前两步的答案

  1. 点击浏览
  2. 选择要上传的文件
  3. 对于第三步(点击上传),查看屏幕截图我没有看到任何显示“上传”的按钮。所以只需点击“保存”即可,我认为您的文件将成功上传。

答案 1 :(得分:0)

这里有两件事你需要考虑:

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

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

    driver.switchTo().frame(fr);

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

    1. 从桌面上传文件: 由于selenium仅适用于您从驱动程序调用的浏览器会话中的html,因此它无法对您执行操作桌面。一旦你能够点击浏览器按钮你可以使用Auto it(仅适用于Windows)或Sikuli(适用于mac,linux,windows甚至是android)来模拟你的事件基于上传按钮的位置。
    2. 希望这有帮助