XPath Axes 示例

Example 1:Use Button 3 to climb up to its TABLE

This is similar to example we saw in the section 'Select Parent Nodes using Children' but instead of using the XPath expression /..,we will use axes.The target HTML and XPath axis is shown below:

<table id='table1'> "!-- destination -->

  <tr class='row1' id=BPT>

    <td>View ID</td>

    <td><input type='button' value='Button 1' class='btn_blue' id='btnfirst'></td>

  </tr>

  <tr class='row2' id=QC>

    <td>View Address</td>

    <td><input type='button' value='Button 2' class='btn_blue'></td>

  </tr>

  <tr class='row3' id=QTP>

    <td>View Phone Number</td>

    <td><input type='button' value='Button 3' class='btn_green'></td>

  </tr>

</table>

Following are the 2 possible XPath axes used to move up from the button (<input>) to its parent Table:

1. //input[@value='Button 3']/parent::td/parent::tr/parent::tbody/parent::table

2. (//input[@value='Button 3'])[1]/ancestor::table

 

In QTP:

'Use Button 3 to climb up to its TABLE

Browser("XPath").WebElement("xpath:=(//input[@value='Button 3'])[1]/ancestor::table").Click

 

Example 2:Use TR[@class=row4] row to identify preceding rows

This example shows how one anchor row can be used to identify neighboring rows.

<tr class='row1' id=BPT>  <!-- destination -->

  <td>View ID</td>

  <td><input type='button' value='Button 4' class='btn_blue'></td>

</tr>

<tr class='row2' id=QC>  <!-- destination -->

  <td>View Address</td>

  <td><input type='button' value='Button 5' class='btn_blue'></td>

</tr>

<tr class='row3' id=QTP>  <!-- destination -->

  <td>View Phone Number</td>

  <td><input type='button' value='Button 6' class='btn_green'></td>

</tr>

<tr class='row4' id=QC>  <!-- destination -->

  <td>View Fax Number</td>

  <td><input type='button' value='Button 7' class='btn_green'></td>

</tr>

1. Indentify the first row with attribute ROW1: (//tr[@class='row4']/preceding-sibling::tr)[1]

2. Indentify the first row with attribute ROW2: (//tr[@class='row4']/preceding-sibling::tr)[2]

3. Indentify the first row with attribute ROW3: (//tr[@class='row4']/preceding-sibling::tr)[3]

 

In QTP:

'1. Indentify the first row with attribute ROW1

Browser("XPath").WebElement("xpath:=(//tr[@class='row4']/preceding-sibling::tr)[1]").Click

 

Example 3:Use View ID to Indentify Button 1

This example is a little different from the previous ones we have seen.Here we show how to use View ID(TD node) to move to the sibling TD node and drill down once to select the CHILD node:

<td>View ID</td> <!-- target -->

<td>

  <input type='button' value='Button 1' class='btn_blue' id='btnfirst'> <!-- destination -->

</td>

1. (//td[.='View ID'])[1]/following-sibling::td/child::input

 

In QTP:

Browser("XPath").WebButton("xpath:=(//td[.='View ID'])[1]/following-sibling::td/child::input").Click

 

Example 4:Use View ID to indentify Button 4

<td>View ID</td> <!-- target -->

<td>

  <input type='button' value='Button 4' class='btn_blue'> <!-- destination -->

</td>

1. (//td[.='View ID'])[2]/following-sibling::td/child::input

 

In QTP:

Browser("XPath").WebElement("xpath:=(//td[.='View ID'])[2]/following-sibling::td/child::input").Click

 

Example 5:Use View Address row to indentify its TD cells

<tr class='row2' id=QC> <!-- target -->

  <td>View Address</td> <!-- destination -->

  <td> <!-- destination -->

    <input type='button' value='Button 2' class='btn_blue'>

  </td>

</tr>

1. First Cell: (//tr[@class='row2'])[1]/descendant::td[1]

2. Second Cell: (//tr[@class='row2'])[1]/descendant::td[2]

 

In QTP:

'First cell

Browser("XPath").WebElement("xpath:=(//tr[@class='row2'])[1]/descendant::td[1]").Click

转载于:https://www.cnblogs.com/dushuai/articles/3435313.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值