无法为动态Web元素编写xpath

时间:2017-01-04 13:18:57

标签: selenium xpath dynamic

在用户个人资料页面中,有一个动态展开图标可查看更多信息。 单击此图标后,页面上会显示3个匹配的展开图标。第一个展开图标的{ "kind": "youtube#playlist", "etag": "\"gMxXHe-zinKdE9lTnzKu8vjcmDI/2XhXuZ6FvF_yCAJCF6MLhcWM7no\"", "id": "PLYXievo3ibiUSj_psEb9dmRNRy9877w8-", "snippet": { "publishedAt": "2015-04-08T07:31:15.000Z", "channelId": "UC1H4TpuRT7msxfqG0jt3sNw", "title": "FULL MOVIES - AR - العربية", "description": "", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/g7l_xbw3ptk/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/g7l_xbw3ptk/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/g7l_xbw3ptk/hqdefault.jpg", "width": 480, "height": 360 }, "standard": { "url": "https://i.ytimg.com/vi/g7l_xbw3ptk/sddefault.jpg", "width": 640, "height": 480 }, "maxres": { "url": "https://i.ytimg.com/vi/g7l_xbw3ptk/maxresdefault.jpg", "width": 1280, "height": 720 } }, 是什么?

检查图标后,我将xpath作为

xpath

但有3个匹配的节点。

以下是我要点击的第一个图标的html代码:

.//*[@id='jobsContent']/ul/li/div[2]/div/div[2]/div/div[1]/div[2]/ul/li[1]/a

1 个答案:

答案 0 :(得分:0)

要仅匹配目标元素,您可以尝试使用此XPath的索引选择它:

//a[@title="Expand"][position()=n]

如果所有这些元素都是同一父元素的子元素

使用目标元素的确切索引更改n

请注意,在Xpath中,索引计数从1开始,而不是从0开始。

如果他们有不同的父母,您可以使用

findElements(By.xpath('//a[@title="Expand"]')).get(n) # Java
find_elements_by_xpath('//a[@title="Expand"]')[n] # Python

请注意,在大多数编程语言中,索引计数从0

开始