介绍
Cabbie 是一个基于 WebDriver 的 Web 自动化测试框架。Cabbie 提供了多个 NPM 包,用于扩展 Cabbie 的功能,其中的 cabbie-run 包用于在 Node.js 中运行 Cabbie 测试。本文将为大家详细介绍 npm 包 cabbie-run 的使用方法。
安装
在 Node.js 项目中使用 cabbie-run,需要在项目中安装 cabbie 和 cabbie-run 依赖包。
npm install cabbie cabbie-run --save-dev
简单示例
下面是一个简单的 cabbie-run 示例代码,用于在 Google 搜索框中输入 "cabbie" 并点击搜索按钮。
-- -------------------- ---- ------- ----- - ------- ------ - - ------------------ ----- ------ - --- ---------------------------------- ----- ------ - --- --------------- ----- --- - ------------------------- ----- -------- ----- - ----- ------------------------------------------- ----- ----------- - ----- ---------------- ------------ ------------------ --- ----- --------------------------- ----- ------------ - ----- ---------------- ------------ -------------------- --- ----- --------------------- ------ -------------- - ----- -------- -- ----------------- ---------- -------------- -- ------------------- ------- ------------
连接 Selenium Server
如果已经设置和配置 Selenium Server,可以通过 Cabbie
构造函数的 remote
配置选项连接到它。
const { Cabbie } = require('cabbie'); const cabbie = new Cabbie({ remote: { url: 'http://localhost:4444/wd/hub' }, });
管理浏览器
使用 Cabbie
对象的方法可以将当前的浏览器进行控制。
窗口
使用 Cabbie
对象的 driver
属性的 activeWindow()
方法,可以获得当前未关闭窗口的句柄,并控制该窗口。
const { Cabbie } = require('cabbie'); const cabbie = new Cabbie(); const windowHandle = await cabbie.driver.activeWindow().open('https://www.example.com'); const title = await cabbie.driver.activeWindow().getTitle(); console.log(title); // Output: Example Domain await cabbie.driver.activeWindow().setUrl('https://www.google.com'); await cabbie.driver.activeWindow().close();
窗口和帧
使用 Cabbie
对象的 driver
方法进行管理当前浏览器的窗口和窗口中的帧。
获取当前的窗口和窗口中的帧:
const { Cabbie } = require('cabbie'); const cabbie = new Cabbie(); const topWindow = await cabbie.driver.activeWindow(); const frameElement = await topWindow.element({ cssSelector: 'iframe[src="/frame-url"]' }); const frameWindow = await frameElement.contentWindow();
设置浏览器大小:
await topWindow.setSize(500, 500);
Cookies
使用 Cabbie
对象的 cookies
属性管理当前浏览器的 cookie。
-- -------------------- ---- ------- ----- - ------ - - ------------------ ----- ------ - --- --------- ----- ----------------------------------------------------------------- ----- -------------------- ----- ---------------- ------ --------------- ---- -------------------------- --- ----- ----------------------- ----- ---------------- ---- -------------------------- ---
操作浏览器页面
使用 Cabbie
对象的 element
方法获取元素,使用CabbieElement
对象操作元素。可以使用多种方法获取元素,如 cssSelector
、xpath
、id
、name
等。
const { Cabbie } = require('cabbie'); const cabbie = new Cabbie(); await cabbie.driver.activeWindow().navigate('https://www.example.com'); const element = await cabbie.element({ cssSelector: 'button' }); await element.click(); await element.type('hello cabbie', { replace: true }); // Replace previous text
参考
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066c90ccdc64669dde58ab