
1、Xpath也可以使用元素的属性值来定位,以百度输入框和搜索按钮为例
2、通过id属性值来定位:注释://表示在当前页面的某个目录下,input表示定位元素的标签名,[@id='kw'],表示这个元素的id属性值等于kw
3、通过name和class属性值来定位:如果不想指定标签名,则也可以用代替,当然,使用Xpath不局限于id,name和class这三个属性值,元素的任意属性值都可以使用,只要它是唯一的标识元素
4、层级与属性结合。如果一个元素本身没有可以唯一标识这个元素的属性值,那么我们可以找到其上一级元素,如果它的上一级有唯一可以标识属性的值,也可以拿来使用
5、使用逻辑运算符。如果一个属性不能唯一地区分一个元素,我们还可以使用逻辑运算符连接多个属性来查找元素。例如,假如要查找第一行元素,则:
C# code
private void FormBrower_Load(object sender, EventArgs e)
{
webBrowserNavigate(">
你应该是写错了吧,你改成 //div[@class="proLis"]//span/text() 试试。单斜杆表示只取其儿子辈的节点,你的span标签都是N辈了
再说,没有必要自己写,你可以在chrome浏览器装一个ChroPath插件,点击元素,然后就会出来相应的xpath表达式。
span后面加上text()即driverfind_element_by_xpath("//div[@id='content']/div/div/div/div/div/div/div[2]/div[2]/div[%d]/span/text()"%i)click()
用jQuery写的,当鼠标点击一个元素时,显示元素的xpath路径
$(document)ready(function () {
var xpath = '', o;
$('')click(function (e) {
estopPropagation();//停止冒泡
o = this;
alert(readXPath(o));
});
});
String xpath = "/html/body/form/div/table/a";
List<Node> trNodes = docselectNodes(xpath);
for (int i=1;i < trNodessize();i++){
Element trElement = (Element)trNodesget(i);
List<Element> tdList = trElementelements();
Element tdElement1 = tdListget(1);
Element fontElement1 = (Element)tdElement1elements()get(0);
String c1 = fontElement1getText()
}
可以试试
以上就是关于XPath怎样根据一个元素定位另外一个元素全部的内容,包括:XPath怎样根据一个元素定位另外一个元素、WebBrowser浏览器控件,怎么获取页面某网页元素XPATH、xpath怎么提取span标签内的元素,只能用正则吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)