两个不同标签中两个不同属性的 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.
- 这可能吗'请耐心等待,我是初学者 :)
- 如果是,请求您的指导以达到同样的效果
更新:
首先非常感谢@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
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.
- 这可能吗'请耐心等待,我是初学者 :)
- 如果是,请求您的指导以达到同样的效果
更新:
首先非常感谢@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