相关文章推荐
玩足球的斑马  ·  user interface - ...·  1 年前    · 
寂寞的台灯  ·  java - ...·  1 年前    · 

有时候,相同的父节点下面的标签个数不一致,一个父节点下面是两个标签,另一个父节点下面是三个标签。
但是我们又想要把只有两个标签的父节点也记为三个子节点,并且把它最后一个节点的值记为None。可通过伪造的第三个标签和第二个标签比较,判断是不是应该为None。
如果子节点的标签也不一致,可以如下方式,这种情况比较少见:

//div[contains(@class, 'tv')]/child::node()[last()]

不过一般很少会这样用到,我这里只做记录。如果遇到和我相似的情况可以采用!

常用的标签: div、p、ul li、ol li、h1-h6、a、span、b、u、i、input(属性text、number、password、radio、checkbox、submit、reset)、form、select>option、textarea h5(新标签):header、nav、footer、main、section、video、audio、input(color、range、week、date) 标签的分类: 单双标签:单标签没有与之对 取xpath最后一个android.view.ViewGroup元素 android.view.ViewGroup[last()] 取xpath倒数第二个android.view.ViewGroup元素 android.view.ViewGroup[last()-1] 具体实现方式 response.xpath( “//div[@class=‘tab-pane’]/table[4]/tbody/tr[4]/td[not(contains(i/@class,‘class -calaaa’))]/text()”)... 1. 由父节点定位子节点最简单的肯定就是由父节点定位子节点了,我们有很多方法可以定位,下面上个例子:对以下代码:<html><body><div id="A"> <!--父节点定位子节点--> &... from selenium.webdriver.support.wait import WebDriverWait #导入条件判断模块 from selenium.webdriver.support import expected_conditions as EC #导入查询元素模块 from selenium.webdriver.com 因为 XPath 中 text() 前面是 /,而此 / 的含义是选取直接子节点,而此处很明显 li 的直接子节点都是 a 节点,文本都是在 a 节点内部的,所以这里匹配到的结果就是被修正的 li 节点内部的换行符,因为自动修正的li节点的尾标签换行了。第一次选择我们调用了 ancestor 轴,可以获取所有祖先节点,其后需要跟两个冒号,然后是节点的选择器,这里我们直接使用了 *,表示匹配所有节点,因此返回结果是第一个 li 节点的所有祖先节点,包括 html,body,div,ul。 在利用xpath定位时,往往会出现某一元素所在的子级元素有唯一定位属性,或比较容易定位,但该元素直接定位比较困难,此时我们可以采用迂回定位办法 ,先定位其子级元素,再通过子级元素来定位该元素,格式如下: “子元素的xpath/parent::元素类型” 如,在robot文件中可以写成: Click Button xpath=//i[@class="ivu-icon ivu-icon-md-add"]/parent::button 通过此种方式可以直接通过子元素的class名称定位到button按钮 <a id="1" href="www.baidu.com">我是第1个a标签</a> <p>我是p标签</p> <a id="2" href="www.baidu.com">我是第2个a标签</a> <a id="3" href="www.baidu.com">我是第3个a标签</a> <a i...