自动化工具 加快 WEB 自动化定位工具 (二)- 提供下载试用

撞树桐 · 2017年07月19日 · 最后由 wangan 回复于 2017年08月21日 · 2904 次阅读

插件安装和使用说明

这里只是为了自己方便写的小程序,代码写的一般,分享出来,有许多的不足,如遇到问题,或有其他想法、意见、建议,可在此贴讨论。

加快 WEB 自动化定位工具(一)

功能

优点

  • 插件收集元素定位信息,避免频繁复制
  • 定位信息实时验证有效性
  • 自动生成 Java pojo 源码类
  • 可重新载入历史定位信息,可维护可修改

缺点

  • 只能生成 java PageObject 模式下源码
  • 只支持 xpath 格式
  • 只支持@FindBy注释
  • 插件没有单独使用的保存和载入,无法脱离服务端使用(等有时间做个单机版的)

安装环境

插件安装

插件依赖于 Firefox 中的 Firebug 和 Firepath,Firefox 版本应在 47 以下。

Firefox 安装

Firefox47 以上版本强制验证插件签名,更高版本不支持 Firebug。只能选择 47 以下版本

Firefox47 下载地址

插件源码下载 - 百度网盘
提取码:e3ia

注意事项:

  • 安装时应选择自定义安装,去除 “安装维护服务” 选项
  • 在设置中关闭自动更新
  • 关闭签名验证:地址栏输入 about:config,将 xpinstall.signatures.required 设置为 false

将 FireBug 和 Firepath 插件拷贝到C:\Users\{用户名}\AppData\Roaming\Mozilla\Firefox\Profiles\{ID}.default\extensions目录下。其中用户名和 ID 需要自行替换。重启 Firefox 后,允许 Firepath 运行即可。

安装后应出现如下选项,如果没出现则请重新安装。

服务端安装

Java(1.8)、Tomcat 环境(Tomcat8.5)

将 web 目录下的 page-module-service.war 拷贝到 ${tomcat}/webapps目录下,须修改${tomcat}/conf/server.xml的配置文件,找到 Connector 元素,替换即可。

这里主要编码方法和端口设置URIEncoding="UTF-8"port="8081",自己单独修改这两项也可。

启动 Tomcat 后,访问http://localhost:8081/page-module-service/出现 HelloWorld 即可,如下

使用说明

以百度首页为例

添加

使用 Firebug 的
选择新闻元素,点击添加(快捷键 alt+a),弹出添加元素窗口,填写描述和变量名,点击添加即可。

说明:描述会生成 Java 的变量注释,变量名会变为类的属性,变量名需要符合 Java 变量定义规范,且必须唯一

对应生成的源码为

/**
* 新闻
**/
@FindBy(xpath=".//*[@id='u1']/a[2]")
public  WebElement news_link;

提示

插件自动填写描述和变量名,描述会根据元素的 text、placeholder、alt 或 value 填写,变量名会根据 name 或 id 填写,没有则为空。

变量类型

插件自动根据 xpath 匹配的元素个数选择元素类型,xpath 匹配多个节点时,插件选择List<WebElement>类型,如.//*[@id='u1']/a

这时生成的 Java 代码如下:

/**
* 链接
**/
@FindBy(xpath=".//*[@id='u1']/a")
public  List<WebElement> links;

查看

点击查看(alt+s),显示所有定位元素,可以点击 delete 删除改元素

查看同时会检查 xpath 是否有效,如果该 xpath 在 dom 中不存在或语法有错误,则提示无效。如下

发送

所有元素定位成功后,可以发送到服务端,生成源码
,点击查看,点击发送,写入完整类名:包 + 类名,如下

在服务端首页下载源码,第一个为下载单个类,输入完整类名:包 + 类名,点击 download

生成如下 源码:

package com.example.page;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import java.util.List;;

public class Baidu{
    /**
    * 新闻
    **/
    @FindBy(xpath=".//*[@id='u1']/a[2]")
    public  WebElement news_link;
    /**
    * 链接
    **/
    @FindBy(xpath=".//*[@id='u1']/a")
    public  List<WebElement> links;
}

第二是下载整个包,输入包名:com.example.page,会下载该包下所有 java 源码,如下

载入

点击载入(alt+l),输入完整类名载入:com.example.page.Baidu

注意事项

  1. 服务端所有数据保存在${tomcat}\webapps\data目录下,存放源码和 json 数据(载入时会查找 json 数据,不要删除),会以包名的形式生成目录。tmp 为压缩包目录。

  2. 如果提交的类名一致,则生成的定位信息会被覆盖,被覆盖,被覆盖!!

  3. 建议将自动生成的类放在单独的包中,通过继承使用,不要手动修改定位类,通过插件加载修改定位。

修改配置

可修改插件请求地址,在 ${FireXPath}/locale/en-US/DefaultConfig.properties,修改 request_url 即可,可使用 ant 重新打包即可。

#默认请求地址
request_url=http://localhost:8081/page-module-service/page
#是否添加元素时提示
hint=true
#是否发送数据成功后清空已添加元素信息
send.clear=true
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 3 条回复 时间 点赞

必须顶一个👍

End 回复

谢谢😁

支持一下楼主,想把楼主这套东西用起来

4楼 已删除
1楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册