确定xpath时遇到问题

时间:2017-03-20 14:07:09

标签: java selenium-webdriver

这个让我难过。通常我会使用Firebug功能为我获取xpath,但这次它似乎不起作用。

我们的网站有美国和英国版本。 Firebug的xpath适用于美国版本,但不适用于英国版本。如果我使用Firebug获取xpath,它就是两个站点的完全相同的xpath,但它适用于该站点的美国版本,并且在英国版本的站点上失败。

这是HTML:

 <a class="ng-scope" ng-click="flightSearch.sort.$select(featuredItinerary.sortOrder)" tooltip="">
    <h3 class="ng-binding">Fastest</h3>
       <div class="row sort-block-row">
       <div class="col-xs-12">
            <h2 class="ng-binding">$283</h2>
       </div>

我想要捕捉283美元的价值。这个值会不断变化。

以下是Firebug告诉我的xpath值是:

 //html/body/div[2]/main/div/ui-view/ui-view/section/div/div[2]/div/ul/li[2]/a/div/div[1]/h2

任何人都有更好的xpath值,我可以尝试并希望它适用于这两个网站?

2 个答案:

答案 0 :(得分:0)

以下 xpath 应该能够帮助获取所需的值:

//a/h3[text()='Fastest']/descendant::h2

答案 1 :(得分:0)

请尝试以下xpath

中的任何一项

假设您要访问Fastest价格。

说明:使用<h3>方法使用text标记开始您的xpath,将文字与Fastest相匹配。然后使用<h2>关键字继续following代码。因为您的<h2>代码会考虑价格。

//h3[contains(text(), 'Fastest')]/following::h2
  

OR

说明:使用class标记的<div>属性。然后继续使用<h2>标记。因为您的代码是考虑价格。

//div[@class='col-xs-12']/h2