zoukankan      html  css  js  c++  java
  • 使用SikuliX定位Object(flash)元素

      先说一下背景,这个是我们测试的系统上的一个上传文件的地方,但是用传统的selenium方法很难定位的到。具体的样子是下面这样的。

      使用id等属性定位做点击操作好像不能直接操作。无奈之下,只好从网上找找方法。于是乎,就发现了一个好玩的东西Sikulix。

      首先,我们需要准备以下,下载地址:https://raiman.github.io/SikuliX1/downloads.html

      先在项目中导入jar包,sikulixsetup-1.1.0.jar,然后在cmd命令行输入: java -jar sikulixsetup-1.1.0.jar进行安装。

       一般是选择这两个选项。

      经过一番摸索,发现这个东西的原理大概就是:在当前可视窗口中,寻找与你截图相同的区域,然后操作该区域的中心点坐标!

      安装完成后,最终会有几个东西,简单说下:

    1.jar包:sikulix.jar,sikulixapi.jar,这两个jar包导入Eclipse中的project。具体导入buildpath---->add external libray

    2.sikulix的IDE,runsikulix.cmd

      看名字就差不多能够明白啦。不过,我们这里只是使用它来定位我们想要点击的地方,因此我们先来截图。

      既然是寻找截图相同的区域,然后操作该区域的中心坐标。所以截图要讲究点,想点的地方尽量放在截图的中心。(精确度不是很好,好在我们可以点击的区域还是挺大的。)
    上代码:
    Screen s = new Screen();
    String target = "F:\abc\pic\test1.png";
    Pattern tgp = new Pattern(target);
    try {
      if(s.find(tgp) != null) {
        s.click(tgp);
        }
      }catch (FindFailed e) {
        e.printStackTrace();
      }

      从这段代码可以看出,我们是通过截图来匹配中心点的位置,从而实现点击。

      点击完成后,我们就可以使用上一篇介绍的AutoIt来实现文件的上传,从而使整个过程自动化了。

      不过,这里还有一点需要备注一下:

      对于selenium启动的firefox来说,是不加载任何插件的。所以,在浏览器进行初始化的时候,需要加载adobe-flash的插件!
      

      

    System.setProperty("webdriver.gecko.driver", "c:\geckodriver.exe");                      
    FirefoxProfile profile = new FirefoxProfile();
    //这一句是关键 profile.setPreference(
    "plugin.state.flash", 2); FirefoxOptions options = new FirefoxOptions(); options.setProfile(profile); driver = new FirefoxDriver(options); driver.manage().window().maximize();

      这里,profile.setPreference("plugin.state.flash", 2);这一句是关键。对应的值为:  0是禁止,1是询问,2是允许。

  • 相关阅读:
    项目文件.NET下编译C++代码时出现fatal error C1083: 无法打开包括文件:“xuhk_JNIHelloWorld.h”: No such file or directory错误的解决方法。
    消息错误INSTALL_FAILED_INSUFFICIENT_STORAGE
    元素链表数据结构:静态链表
    对象类Android应用程序资源管理器(Asset Manager)的创建过程分析
    23种模式中的外观模式
    接口与抽象类的区别
    java中通用的数据库连接与关闭方法类的简单写法
    对Hello China操作系统比较客观的评价
    Hello China V1.68版本源代码、安装包和相应文档,欢迎下载适用
    使用Service Bus Explorer 工具来管理和测试Topics、 Queues 和 Relay Services
  • 原文地址:https://www.cnblogs.com/generalli2019/p/11463226.html
Copyright © 2011-2022 走看看