
1 利用Selenium IDE
我们可以通过firefox添加插件Selenium IDE并开启。当点击红色的录制按钮后,我们对网页进行 *** 作后,该工具会录制所有的行为并转化为selenium命令,当然也就包含有了locator。
方法优点:简单、方便
方法不足:对于一些复杂点的行为可能会漏掉,因此也就无法捕获相应的locator;此外locator是自动获取的,可能不是很直观,另外无法得到统一样式的locator。
2 利用Firebug
同样firefox的插件中可以添加firebug。在Tools->Web Developer->Firebug中打开Firebug,于是能够看到页面的下半部分有显示Firebug窗口,可以查看HTML,CSS等。因为了解的粗浅,所以只能说说知道的几点简单功能。
如果我们需要查看页面某个元素的locator,可以鼠标右击,选择Inspect Element with Firebug, 于是就到了元素对应的html源码位置。这样我们根据这部分源码来写locator。
但是,往往对于一些element如button等,右击后没有反应时,我们可以考虑选择它们旁边的元素进行,到源码后再通过查找其兄弟元素源码或者上一层来找到相应源码。这里主要根据是当我们鼠标放在以某tag为根节点的源码的上时,上面的页面对应的界面元素会有相应标记。
方法缺点:写出的locator可能并不是页面的唯一,这样selenium运行就难以识别
用XPath表达式来定位到对应的<td>元素:
//th[span[text()="发布时间"]]/following-sibling::td/span
这个XPath表达式首先选择包含文本“发布时间”的<span>元素的<th>元素,然后使用/following-sibling::td选择这个<th>元素的下一个兄弟元素,即包含发布时间的<td>元素。最后,使用/span选择包含发布时间值的<span>元素。
请注意,这个XPath表达式返回的是一个<span>元素,如果您只需要获取该元素的文本值,可以使用text()函数,例如:
//th[span[text()="发布时间"]]/following-sibling::td/span/text()
这将返回包含发布时间的<span>元素的文本值
很简单,教你一招:
这是你的html文件,我命名为testhtml
然后用xpath匹配:
import lxmletreehtml=lxmletreeparse("testhtml")
res=htmlxpath("//a[@heaf='baiducom']")
info=res[0]xpath('string()')
print(info)
运行结果:
大概是这样的吧 可以试试
jquery有个 parents()
比如选了一个div id为test,想整xpath的话 $("#test")parents();这样获取的是一个数组,
var aa = [];
$('#test')parents()each(function(){
aapush(thistagName);
});
获取标签名后 就可以替换成xpath了 不过需要注意的是 这个不止获取到body 最后一个元素应该是到html,也不太确定,反正在firefox上是这样的
selxpath() 得到的依旧是一个SelectorList
参看原文档
xpath(query)
Find nodes matching the xpath query and return the result as a SelectorList instance with all elements flattened List elements implement Selector interface too
query is a string containing the XPATH query to apply
那么实际上就是去看Selector 相关的函数了。
————————————————
<p>
AA
<sub>1</sub>
<sub>2</sub>
<sub>3</sub>
</p>
<p>
BB
<sub>1</sub>
<sub>2</sub>
<sub>3</sub>
</p>
对于上述例子,其实可以考虑获取到p之后,对其内容再进行一次查找,即可获得 1 、2 、3的内容。
实现方法如下:
加载到XmlDocument,查找p子节点(XPath),如果要在子节点内继续查找,用递归;
string patten_block="<div class=\"wm_sktq_l\">[\\s\\S]</div>"
string patten_p="<p>[\\s\\S]</p>" 用组获取。
以上就是关于XPath 如何自动快速获取元素全部的内容,包括:XPath 如何自动快速获取元素、XPATH文本内容匹配th内容,获取td的值、xpath取一个节点下的所有文字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)