大家都知道xpath定位相当方便,但往一个复杂的页面中的某一个子元素的xpath可能相当长,如图中的“云主机”,即是如此:
该“云主机”的绝对定位路径为:
/html/body/div[1]/div[1]/div[2]/div[2]/div/div/div/div/div[2]/div/div/div/div[2]/div/div[1]/div[3]/a
乍一看,是不是有种懵懵的感觉,但仔细看代码,却又让我们很泄气,因为它没有id,没有name,class还不唯一,好像只能用xpath定位了。
其实此时我们还有一种相对简单的方法,即是xpath的相对定位,但怎么相对呢,我们不妨找找它的父级,父级的父级,直到找到一个全局唯一的定位元素,如id,name,class等,图中的示例中,我采用的是“百度云”的class,此时我们即可把“百度云”及以上层级的路径替换为相对定位:
//*[@class="product-view"]
于是我们的xpath路径就变成了:
//*[@class="product-view"]/div/div[2]/div/div[1]/div[3]/a
怎么样,看上去是不是瞬间简洁了不少呢,
当然各位大神们如果有更好的办法欢迎与我分享