#selenium #side #automation #automation-selenium

siderunner

由 Selenium IDE 生成 .side 文件的执行库

2 个不稳定版本

0.2.0 2021 年 7 月 10 日
0.1.0 2021 年 7 月 4 日

#424 in 测试

MPL-2.0 许可协议

205KB
5K SLoC

Build Status Crates.io Docs.rs CodeCov License:MPL-2.0

侧跑者

用于解析和运行 Selenium .side 文件的库,这些文件用于 Selenium IDE

入门

要运行一个文件,您首先需要解析它,然后可以通过索引运行测试。

use siderunner::{parse, Runner};
use thirtyfour::{DesiredCapabilities, WebDriver};
use serde_json::json;

let wiki = std::fs::File::open("examples/wiki.side").expect("Can't open a side file");
let file = parse(wiki).expect("parsing can't be done...");

let client = WebDriver::new("https://127.0.0.1:4444", DesiredCapabilities::firefox())
    .await
    .expect("can't connect to webdriver");

let mut runner = Runner::new(&client);
runner.run(&file).await.expect("Error occured while running a side file");

assert_eq!(
    runner.get_value("slogan"),
    Some(&json!("The Free Encyclopedia")),
);

runner.close().await.unwrap();

示例 .side 文件可以在示例目录中找到。

后端

siderunner 支持 2 个后端

您可以通过提供特性 fantoccini_backend 来调整 fantoccini 后端,并关闭默认特性,default-features = false

支持命令

Selenium IDE 支持以下 命令

  • 添加选择项
  • 对下一个提示做出响应
  • 断言
  • 断言警报
  • 断言已选中
  • 断言确认
  • 断言可编辑
  • 断言元素存在
  • 断言元素不存在
  • 断言未选中
  • 断言不可编辑
  • 断言未选择值
  • 断言无文本
  • 断言提示
  • 断言选择值
  • 断言选择标签
  • 断言文本
  • 断言标题
  • 断言值
  • 勾选
  • 在下一个确认对话框中选择取消
  • 在下一个提示对话框中选择取消
  • 在下一个确认对话框中选择确定
  • 点击
  • 在指定位置点击
  • 关闭
  • 调试器
  • 执行
  • 双击
  • 在指定位置双击
  • 拖放到对象
  • 回显
  • 编辑内容
  • 否则
  • 否则如果
  • 结束
  • 执行脚本
  • 执行异步脚本
  • 对每个
  • 如果
  • 鼠标按下
  • 在指定位置鼠标按下
  • 将鼠标移动到指定位置
  • 鼠标移出
  • 鼠标悬停
  • 鼠标抬起
  • 在指定位置鼠标抬起
  • 打开
  • 暂停
  • 移除选择
  • 重复如果
  • 运行
  • 运行脚本
  • 选择
  • 选择帧
  • 选择窗口
  • 发送键
  • 设置速度
  • 设置窗口大小
  • 存储
  • 存储属性
  • 存储JSON
  • 存储文本
  • 存储标题
  • 存储值
  • 存储窗口句柄
  • 存储XPath计数
  • 提交
  • 次数
  • 输入
  • 取消选中
  • 验证
  • 验证选中
  • 验证可编辑
  • 验证元素存在
  • 验证元素不存在
  • 验证未选中
  • 验证不可编辑
  • 验证未选中的值
  • 验证非文本
  • 验证选中的标签
  • 验证选中的值
  • 验证文本
  • 验证标题
  • 验证值
  • 等待元素可编辑
  • 等待元素不可编辑
  • 等待元素不存在
  • 等待元素不可见
  • 等待元素存在
  • 等待元素可见
  • WebDriver对可见提示的回答
  • WebDriver在可见确认中选择取消
  • WebDriver在可见提示中选择取消
  • WebDriver在可见确认中选择确定
  • 当...

开发

单元测试

cargo test --lib

集成测试

要运行集成测试套件,您必须设置一个环境。您可以使用test.bash文件来运行测试和管理环境。只需运行它。

./test.bash

需求

  • docker-compose

贡献

欢迎所有贡献。

我建议从解决一些未实现的命令开始。还有一个很好的开始地方是fantoccini后端,因为它已经有些过时了,与默认后端相比,那里有大量未实现的命令。

后端仓库中可能也有一些事情要做,所以您也可以帮助他们。

依赖

~4–9MB
~182K SLoC