什么是 spotspec?
Spotspec 是一个基于 Selenium WebDriver 和 Puppeteer 的 Web 解析库,用来匹配网页上的元素。它帮助我们在 Web 自动化测试和 Web 数据爬取的过程中,更方便快捷地定位和获取我们需要的页面信息。
spotspec 的安装和配置
确保你已经安装了 Node.js 环境
打开命令行工具,执行以下命令进行安装:
npm install --save spotspec
安装完成后,在代码中引入 spotspec:
const spotspec = require('spotspec');
如果你想使用 Puppeteer,可以像这样引入:
const spotspec = require('spotspec').puppeteer;
配置 spotspec 的选项:
spotspec.setOption('timeout', 5000); // 设置超时时间为 5 秒(默认为 30000 毫秒) spotspec.setOption('headless', false); // 设置启动浏览器时是否显示图形界面(默认为 true) spotspec.setOption('browser', 'chrome'); // 设置使用的浏览器类型(chromium 或 firefox,默认为 chromium) // 其他选项...
spotspec 的使用方法
创建一个新的 spotspec 实例
const spot = new spotspec();
打开一个网页
await spot.open('https://www.baidu.com');
选取元素
在 spotspec 中,用 $()
来选取元素。这个函数支持 CSS 选择器 和 XPath。如果选取的元素不存在,将会抛出错误。此外,你还可以使用 $()
的链式调用语法来选取子元素。
// 使用 CSS 选择器选取元素 const inputElement = await spot.$('#kw'); // 使用 XPath 选取元素 const submitButton = await spot.$('xpath://input[@type="submit"]'); // 链式调用,选取子元素 const childElement = await spot.$('#parentElement').$('childSelector');
获取元素属性
const attribute = await spot.$('#element').attribute('attributeName');
获取元素文本
const text = await spot.$('#element').text();
获取元素 HTML
const html = await spot.$('#element').HTML();
获取元素 CSS 样式
const style = await spot.$('#element').css('styleName');
获取元素位置和大小
const position = await spot.$('#element').position(); const size = await spot.$('#element').size();
执行 JavaScript 代码
const result = await spot.execute('return document.title;');
示例代码
-- -------------------- ---- ------- ----- -------- - ------------------------------ ----- -------- ------ - ----- ---- - --- ----------- ----- -------------------------- ------- ----- ----------------------------------- ----- ------------ - ----- -------------- ----- --------------------------- ----- ----- ------------ - ----- ---------------------------------------- ----- --------------------- ----- ---------- - ----- -------------------------------------------- --- ------ ------ -- ----------- - ----- ------------ - ----- ---------------------- ----- ----- - ----- -------------------- ----- --- - ----- ------------------------------- --------------------------- ------------------------- - ----- ------------- - -------
这个示例中,我们使用 spotspec 和 Puppeteer 来在百度搜索中,搜索“spotspec 示例”,并且输出搜索结果中的标题和链接。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600670a58ccae46eb111f1cd