两个不同标签中两个不同属性的 Xpath

Xpath for two different attributes in 2 different tags

HTML 片段:

<TH class="abcd" style="WIDTH: 70%">03 Mar 2014</TH>
<TH style="WIDTH: 58%" height=18>27 Feb 2014</TH>
<TH class="abcd" style="WIDTH: 70%">03 Jun 2014</TH>
<TH style="WIDTH: 58%" height=18>12 Jun 2014</TH>

描述:

我们需要从上面的 HTML 片段中检索日期。所有日期都出现在两个标签中的任何一个中,需要使用单个 XPATH

检索所有日期

目前已经尝试过的:

我能够使用两个不同的 xpath 获取日期值。一个用于第一个标签 <TH class=.... > 一个用于 <THstyle = ....>

Xpath one : //TH[@class = 'abcd']
Xpath two : //TH[@height = '18'] 'Not sure if this is right

要求:

Only One xpath is to get date values from the above HTML.

  1. 这可能吗'请耐心等待,我是初学者 :)
  2. 如果是,请求您的指导以达到同样的效果

更新:

首先非常感谢@Mathias Müller。我试过了但没有运气。它返回 0 个元素。可能是我错过了一些东西,而不是你建议的 xpath :)。所以我在这里发布更新的代码.. Vbscript & QTP。请让我知道这是否正确以及我在这里缺少什么

注意:所有这些日期值都在网络表中

Set odesc=Description.Create()
    odesc("micclass").value="WebElement" 
    odesc("xpath").value="//th[@class = 'abcd' or @height = 18]/text()" 

set test = Browser("asdfasdf").Page("asdfasdf").WebTable("xyz").ChildObjects(odesc)
    For i = 1 To test.count-1
        val=test(i).GetROProperty("innertext")
        MsgBox val
    Next

假设输入文档格式正确,使用

//TH[@class = 'abcd' or @height = 18]/text()

这将产生(个别结果由 ----- 分隔):

03 Mar 2014
-----------------------
27 Feb 2014
-----------------------
03 Jun 2014
-----------------------
12 Jun 2014

路径表达式还将检索同时存在两个属性的节点,例如

<TH class="abcd" style="WIDTH: 70%" height="18">03 Jun 2014</TH>

您的代码应该是这样的。从 XPath 描述中删除文本

Set odesc=Description.Create()
    odesc("micclass").value="WebElement" 
    odesc("xpath").value="//th[@class = 'abcd' or @height = 18]" 

set test = Browser("asdfasdf").Page("asdfasdf").WebTable("xyz").ChildObjects(odesc)
    For i = 1 To test.count-1
        val=test(i).GetROProperty("innertext")
        MsgBox val
    Next