我有一个页面,导入按钮看起来像这样。
以上导入按钮的Dom结构如下
<button ngf-select="" ng-model="$parent.enduserMashups.files" class="btn btn-default text-center ng-pristine ng-untouched ng-valid ng-empty">
<i class="icon-import-data"></i>
<span>Import</span></button>
我已经编写了如下的selenium上传工具,在NON-GRID环境(本地机器)的情况下工作正常
public void uploadFile(String filePath)
{
// Setting up clipBoard location
StringSelection ss = new StringSelection(filePath);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
// Using Robot class to upload file
Robot robot;
try
{
robot = new Robot();
try
{
Thread.sleep(1000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
// Press Enter
robot.keyPress(KeyEvent.VK_ENTER);
// Release Enter
robot.keyRelease(KeyEvent.VK_ENTER);
// Press CTRL+V
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
// Release CTRL+V
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
try
{
Thread.sleep(1000);
} catch (InterruptedException e)
{
e.printStackTrace();
};
// Press Enter
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
} catch (AWTException e)
{
e.printStackTrace();
}
}
如果在selenium网格节点环境中运行上述代码,则导入&#39;按钮被点击在节点浏览器实例上,在这里它没有找到文件(显然),因为它保存在运行testcase的另一台机器上。 谷歌搜索了很多,我找到了一些解决方案,说明如果有按钮,我们可以使用webdriver.sendKeys(文件)方法,直接将文件发送到selenium节点,但这仅适用于标签。
如果没有元素呢?
答案 0 :(得分:1)
您可以采取以下措施来解决问题。
这应该可以解决问题。