我是 sikuli 的新手,无法为 Web 应用程序的上传功能生成 Sikuli 脚本。
问问题
3223 次
2 回答
0
请注意,通常,您可以仅使用 Selenium 自动执行文件上传方案,无需使用 Sikuli。要上传文件,您只需要在sendKeys()
为文件上传显示的 WebElement 上调用方法(以文件路径作为参数)。代码如下:
//Put this for textbox near to upload button
driver.findElement(By.id("id_or_other_locator_goes_here")).sendKeys("file_path_goes_here");
然后点击上传按钮:
driver.findElement(By.xpath("locator_for_upload_button")).click(); // Click Upload button
西库里:
我已经使用 Sikuli 在 IE 中自动执行文件下载场景,以下是执行此操作的步骤:
- 首先在文件下载对话框中捕获保存按钮的图像并保存
- 将 Sikuli jar 放入您的 Java 项目中
- 使用以下代码片段
// 代码:
//Save the file in Downloads directory by using on Sikuli
ScreenRegion s = new DesktopScreenRegion();
Target target = new ImageTarget(new File("SavedImagePath.png"));
ScreenRegion r = s.find(target);
Mouse mouse = new DesktopMouse();
if (r != null) {
mouse.click(r.getCenter());
Thread.sleep(5000);
} else {
System.out.println("Unable to click using Sikuli")
}
于 2015-07-14T10:36:36.617 回答
0
谢谢桑迪普!
尝试使用 Sikuli 的 Screen 和 Pattern 类在运行时从打开的文件夹窗口捕获基于桌面的文件的脚本,它可以工作!!
String FileToUpload = "/location of file to upload/"
String fileNameLoc = "/fileName_input sikuli image location"
String openButtonLoc = "/Open button sikuli image location/"
//Code to perform action using action using sikuli script
Screen src = new Screen();
src.setAutoWaitTimeout(80);
Pattern fileName = new Pattern(fileNameLoc).similar((float) 0.5);
if (src.exists(fileName, 10) != null)
{
System.out.println("File Name Pattern exist..");
Match match = src.getLastMatch();
match.find(fileName);
match.click(fileName);
match.type(fileName, FileToUpload);
match.setAutoWaitTimeout(50);
}
else
{
System.out.println("File Name pattern not found on screen..");
}
Pattern open = new Pattern(openButtonLoc).similar((float) 0.5);
if (src.exists(open, 5) != null)
{
System.out.println("Open Button pattern exist..");
Match match = src.getLastMatch();
match.find(open);
match.click(open);
match.setAutoWaitTimeout(30);
}
else
{
System.out.println("Open buton pattern not found on screen..");
}
于 2016-07-18T06:42:48.020 回答