如何使用selenium唯一标识元素以用于以下Expedia站点示例

时间:2017-05-12 13:39:15

标签: css selenium object xpath identification

让我说我去 - https://www.expedia.co.uk/ 我去火车选项卡搜索任何一位乘客的日期。

您将在下一页从列表中选择列车的位置,现在如果我想点击任何 ShowFares 按钮,{{{ 1}}(它返回多个匹配节点。所以无法使用它。

使用xpath -

CSS= .btn-secondary.btn-action

我看到它的录制.//*[@id='ember968']/div/div[1]/div[2]/div[2]/div/button 带有一些@id,因为每个其他搜索列表的更改都不是唯一的。

同样当我点击 ShowFare 然后无法选择火车或票价同样出现问题,因为CSS返回了几个节点,而xpath有这个不唯一的emberxxx。

2 个答案:

答案 0 :(得分:1)

例如,使用xpath-function starts-with

(//*[starts-with(@id, 'ember')])[2]

此功能查找名称的一部分。然后你可以使用[]下的filtr来按索引查找所需的元素。

答案 1 :(得分:1)

与相同的属性一样,我们有多个元素,我们无法选择正确的元素。我尝试使用jquery选择器.btn-secondary.btn-action:eq(1),它正在工作。通过使用上面的选择器,您每次都会选择显示票价按钮。如果您有任何疑问,请告诉我。

CSS选择器: .flex-1up.flex-listing.flex-theme-light li:nth-child(1) button