【问题标题】:Upload functionality using Robot class in selenium Web Driver在 selenium Web Driver 中使用 Robot 类上传功能
【发布时间】:2015-04-25 22:08:07
【问题描述】:

我正在使用以下代码:代码运行良好,但不是在上传窗口粘贴文件的路径,而是在 TestNG 控制台上粘贴路径。不会抛出任何错误,并且在浏览器上弹出的窗口保持空白。如果有人遇到同样的问题,请帮助我

  StringSelection ss= new StringSelection("D:\\test.docx");
  Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,null);

  Robot robot = new Robot();

  robot.keyPress(KeyEvent.VK_CONTROL);
  robot.keyPress(KeyEvent.VK_V);
  robot.keyRelease(KeyEvent.VK_V);
  robot.keyRelease(KeyEvent.VK_CONTROL);
  robot.keyPress(KeyEvent.VK_ENTER);
  robot.keyRelease(KeyEvent.VK_ENTER);

【问题讨论】:

  • 您是否尝试过在“input”元素上使用“.sendKeys()”然后在提交元素上使用“,click()”的方法?
  • 嗨,马克,感谢您的回复。我尝试了 sendkeys,但没有成功。我正在测试一个场景,我试图通过附加文件或文档来发送邮件。使用gmail 为此...如果您有一些使用机器人类的代码,那么请分享,因为这会更有帮助...谢谢
  • Gmail 故意难以通过 UI 实现自动化。他们提供了一个 API 来代替它。就大多数自动化社区人士的理解而言,谷歌真的不希望它通过 Selenium/Webdriver 实现自动化。祝你好运。
  • 嗨,马克...好吧,我也在应用程序的网页上尝试了相同的代码,但仍然存在相同的问题..打开浏览窗口后应用程序停止..n 测试没有错误ng 控制台...

标签: java selenium upload webdriver


【解决方案1】:

我遇到了同样的问题并使用这个“小”技巧进行了排序。一切都很好,只是这里的技巧是您的控件/鼠标应该在被测应用程序上。

A) 如果您在 Jenkins 上运行,它会像 Jenkins 在被测应用程序上执行脚本一样正常工作。默认情况下,您的控件的焦点是应用程序本身。

B) 如果您在调试模式下运行,有时焦点会移动到 TestNg 控制台/Eclipse 脚本编辑器,这不允许将文件路径粘贴到打开/文件资源管理器窗口。只需点击应用程序,在 Eclipse 之前执行文件上传的机器人代码。 请让我知道它是否有效。

事实是,“机器人类”不能像预期的那样在 Jenkins 上与 selenium 一起用于“文件上传”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    相关资源
    最近更新 更多