当前位置: 首页 > 知识库问答 >
问题:

Sikuli积分与等待条件下的selenium错误

贺雪松
2023-03-14

在此输入图像描述

screen.wait(用户名,10);

我在org上收到了一条错误消息。西库利。剧本区域等等,我如何在命令提示符下运行Sikuli与selenium项目的集成,即使我已经添加了所需的Sikuli jar——在命令提示符下运行时,我发现Sikuli包丢失了。

Screen screen = new Screen();
Pattern fileUpload = new Pattern("a.PNG");
Pattern fileSelect = new Pattern("b.PNG");
Pattern AWBSelect = new Pattern("c.PNG");
Pattern AWBupload = new Pattern("d.PNG");
Pattern AWBSearch = new Pattern("e.PNG");

screen.wait(fileUpload, 10);
screen.click(fileUpload);
screen.wait(fileSelect, 10);
screen.click(fileSelect);
screen.type("a", KeyModifier.CTRL);
screen.type(Key.BACKSPACE,"C:\\Users\\PoojaPatange\\eclipse-workspacepractice\\CIToolAutomationRegression\\lib");
screen.type(Key.ENTER);
screen.wait(AWBSelect, 10);
screen.click(AWBSelect);
screen.wait(AWBupload, 10); 
screen.click(AWBupload);
screen.wait(AWBSearch, 10); 
screen.click(AWBSearch); 

共有1个答案

穆子琪
2023-03-14

你需要使用图像的精确路径,如下面的代码。在这里,我测试了谷歌页面的搜索内容,并点击谷歌搜索按钮。

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;

public class DemoWindowBasedApplication {


    public static void main(String[] args) throws FindFailed {

        Screen screen = new Screen();
        Pattern image = new Pattern("C:\\Users\\test\\Videos\\snspshot\\october\\12\\google.png");
        Pattern image1 = new Pattern("C:\\Users\\test\\Videos\\snspshot\\october\\12\\testGoogle.png");
        Pattern googleSearch = new Pattern("C:\\Users\\test\\Videos\\snspshot\\october\\12\\googleSearch.png");
        Pattern closeBrowser = new Pattern("C:\\Users\\test\\Videos\\snspshot\\october\\12\\close.png");

        WebDriver driver;
        System.setProperty("webdriver.gecko.driver",
                "D:\\Automation\\Drivers_Automation\\geckodriver\\geckodriver.exe");
        driver = new FirefoxDriver();
        driver.get("http://www.google.com");
        screen.click(image);
        screen.type(image1,"Software testing");
        screen.click(googleSearch);
        screen.click(closeBrowser);
        screen.wait(image, 10);

    }
}

我附上了一些示例图片,你可以在运行sikuli程序时拍摄快照并进行精确匹配

 类似资料:
  • 我想在C#中使用SikuliIntegrator。我以管理员的身份运行VS,通过NuGet manager安装SikuliIntegrator,并想在简单的任务上测试他。 这是我的密码 运行代码(并在屏幕上准备好我的图片)后,我得到的只是异常“####失败”知道为什么吗? 我不想使用Sikuli4Net,因为它看起来像是在web ap上工作,我只需要在桌面应用上简单点击几下。 我尝试了Java中的

  • 我第一次做硒测试。在主页上,我调用了一些AJAX,我希望Selenium等待元素加载完成。我不确定它是否有效,但我只是键入selenium,waitForCondition可以选择。 无论我选择什么,它总是返回“false”。我现在连等待条件都不工作吗? 我如何测试它是否有效?在这些代码中我做错了什么? 如果由自己的类实现,则返回“true” isElementPresent(By.xpath(“

  • 问题内容: 与传统的等待通知机制相比,使用Condition接口/实现的优点是什么?在这里,我引用道格·李(Doug Lea)的评论: 条件将对象监视方法(wait,notify和notifyAll)分解为不同的对象,从而通过与任意Lock实现结合使用,从而使每个对象具有多个等待集。如果Lock替换了同步方法和语句的使用,而Condition替换了Object监视器方法的使用。 我看到这是实现等待

  • 我设法用Selenium静默下载了文件。但是Firefox通过添加1、2、3自动重命名该文件。文件名,因为服务器发送的每个文件都具有相同的名称。但我想根据当前的日期和时间重命名文件。于是,试着: > 开始下载文件->DownloadLink.Click(); 而(不存在带有原始名称的文件或不存在 .part) · · { } 将下载的文件重命名为所需的名称。 但它会重命名一些文件。有些文件长度为0

  • Selenium提供了显式的等待功能来处理(例如)当您想要对尚未可单击的元素执行操作时的情况。 语法如下: 这告诉程序等待,直到某个元素(通过其ID定位)可以单击。 element_to_be_clickable()调用内部函数读取指定的参数。在这种情况下,它在DOM中搜索与ID:相对应的元素。 但是,我不能直接将对象传递到函数中,因为它在内部调用中失败。 在处理本身时,有没有一种方法可以使用这些

  • 问题内容: 我正在尝试使用Nightmare抓取网页,但要等到它实际存在时才等待出现。否则,我希望梦Night继续前进。如何使用来完成? 我不能用。使用手段,噩梦将一直等待直到该元素出现,但如果页面永远不会包含此元素,则噩梦将永远等待。 最后一个选项是使用。我尝试过这样的事情 因此,请等待并再次尝试(达到阈值),如果找不到该元素,则继续前进。setTimeout周围的代码似乎错误,因为它是在浏览器