JavaScript:使用Xpath定位网页元素(含Iframe定位)
JavaScript:使用Xpath定位网页元素(含Iframe定位)
- 一、非Iframe内元素使用Xpath定位
- 二、Iframe内元素使用Xpath定位(非跨域Iframe)
- 三、实战案例(以获取QQ邮箱中收件列表为例)
- 1. 定位Iframe元素
- 2. 获取所有邮件标题和概要
一、非Iframe内元素使用Xpath定位
- 在JS中定义使用Xpath的函数
注:在Chrome开发者工具Console中可以直接使用该函数,无需定义
function $x(STR_XPATH) {var xresult = document.evaluate(STR_XPATH, document, null, XPathResult.ANY_TYPE, null);var xnodes = [];var xres;while (xres = xresult.iterateNext()) {xnodes.push(xres);}return xnodes;
}
二、Iframe内元素使用Xpath定位(非跨域Iframe)
- 改进Xpath方法,将document作为参数,即可实现在Iframe中使用Xpath定位元素
function $x(DOCUMENT, STR_XPATH) {var xresult = DOCUMENT.evaluate(STR_XPATH, DOCUMENT, null, XPathResult.ANY_TYPE, null);var xnodes = [];var xres;while (xres = xresult.iterateNext()) {xnodes.push(xres);}return xnodes;
}
- 通过ID或Class属性定位Iframe,可以通过以下代码可以获取到Iframe内的document对象
document.getElementById('iframe的ID').contentWindow.document // 通过ID定位
document.getElementsByClassName('iframe的Class').contentWindow.document // 通过Class定位
三、实战案例(以获取QQ邮箱中收件列表为例)
1. 定位Iframe元素
// 方式一:使用getElementById()定位Iframe
var iframe_document = document.getElementById('mainFrame').contentWindow.document;
// 方式二:使用Xpath定位Iframe
var iframe_document = $x(document, "//iframe[@id='mainFrame']")[0].contentWindow.document;
2. 获取所有邮件标题和概要
function get_email_infos(){var email_infos = [];var iframe_document = document.getElementById('mainFrame').contentWindow.document;var emails = $x(iframe_document, "//table[contains(@class, 'i') and not(contains(@class, 'bold'))]"); for(var k in emails){var email_title = emails[k].getElementsByClassName("tt")[0].textContent;var email_desc = emails[k].getElementsByClassName("no")[0].textContent;email_infos.push({'title': email_title, 'desc': email_desc});}return email_infos;
}
JavaScript:使用Xpath定位网页元素(含Iframe定位)相关推荐
- 第八章 定位网页元素
第八章 定位网页元素 一,定位 position属性有以下属性值: static:默认值,没有定位 relative:相对定位 absolute:绝对定位 fixed:固定定位 1.static ...
- seleniumpython定位网页元素方法_使用Selenium对网页元素进行定位的诸种方法
使用Selenium进行自动化操作,首先要做的就是通过webdriver的get()方法打开一个URL链接. 在打开链接,完成页面加载之后,就可以通过Selenium提供的接口,在页面上进行各种操作了 ...
- seleniumpython定位网页元素方法_Python+Selenium 定位元素
1.摘取网页上所有邮箱 练习场景:在某一个网页上有些字段是我们感兴趣的,我们希望摘取出来,进行其他操作.但是这些字段可能在一个网页的不同地方.例如,我们需要在关于百度页面-联系我们,摘取全部的邮箱. ...
- (干货)你知道python爬虫定位网页元素有几种方式嘛,今天带你一一了解。
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:拓荒者 ( 想要学习Python?Python学习交流 ...
- html css整理笔记,HTML CSS整理笔记 (八) 定位网页元素
----8 定位网页元素---- 51.Position属性:指定盒子的位置,相对它父级的位置或它自身应该在的位置. (1)static 默认无定位,元素按照标准文档布局. (2)relative相对 ...
- php生成网页按钮,JavaScript实现自动生成网页元素功能(按钮、文本等)_javascript技巧...
创建元素的方法: 1.利用createTextNode()创建一个文本对象 2.利用createElement()创建一个标签对象 3.直接利用容器标签中的一个属性:innerHTML-----本质上 ...
- 网页元素常见的定位方式
1. 流式定位 这是网页元素默认的定位方式,网页元素按照其HTML标签的先后顺序,在网页内依次显示,就像液体一样"流动",所以称为"流式定位",这种方式将所有网 ...
- html网页定位,HTML_定位网页元素(示例代码)
一.position属性 意指:盒子的位置. 四个属性: 1.static:默认值,没有定位,元素按照标准文档流进行布局. 2.relative:相对定位,使用相对定位的盒子位置以标准文档流进行的排办 ...
- 快速获取网页元素xpath简单方法
1.首先打开对应网页 2.点击F12 或者 Ctrl+Shift+i 或者点击浏览器右上角三个点.再点击 更多工具 ,再点击开发人员工具,如下图: 3.点击左上角的箭头,再在网页中点击需要查找的网页元 ...
最新文章
- 2018-3-27 遗传算法中的轮盘赌
- R语言可视化包ggplot2包通过因子变量设置图像颜色实战
- mysql 8.0免安装配置_Mysql8.0免安装包配置方法
- 《编程珠玑》 读书笔记
- 微信小程序_wxml学习
- linux上很方便的上传下载文件工具rz和sz
- CentOS下安装beanstalkd服务
- 华为员工:工作3年,年薪50万,为什么要辞职?出租车司机觉得我在吸毒!
- redis新数据类型-HyperLogLog
- 优先级反转之futex(一)
- 使用arcgis进行夜间灯光数据处理
- Android 2.2模拟器调出中文输入法
- 电脑ssl协议 linux,基于ssl协议和openssl工具建立私有CA
- MySQL-redo和undo
- 洛谷:P1042 [NOIP2003 普及组] 乒乓球 C++详解
- 从键盘输入圆柱体的半径和高,求圆柱体的表面积和体积
- 【烈日炎炎战后端】操作系统(1.1万字)
- 打字慢能学计算机吗,提高电脑打字速度,实现快速盲打,这样的学习方法很管用!...
- 如何把图片转换成文字?这几个方法或许可以帮到你
- 某电商网站的数据库设计(5)——销售信息总表(视图)