2012-08-28 52 views
62

我有一个问题。 我有内容是这样的:CSS选择器(id包含文本的一部分)

<a>元素编号= someGenerated一些:相同:0:命名

<a>元素编号= someGenerated一些:相同:0:姓

<a>元素编号= someGenerated一些:相同:1:命名

<a>与id元素= someGenerated一些:相同:1:姓

我需要CSS选择器来获取名称。问题是我不知道如何得到它。 我试过a[id*='Some:Same'] - 它返回所有<a>元素。在我可以获得id以名字结尾的元素之后。但我不喜欢这个想法。我认为可以用其他选择器来完成。

+0

我不能添加真实的例子,因为保密政策:( – TarasLviv

+0

但我可以用其他方式解释它。Id属性包含下一个:一些生成的字符+一些静态字符+:elementIndexInTable:+列名称 – TarasLviv

回答

89

试试这个:

a[id*='Some:Same'][id$='name'] 

这将让你的所有a元素包含

ID某些:同

,并在

结束ID

nam e

+0

嗯,id *对我来说并不适用,它说不能评估为web元素,我用它来查找id为''的iframe。 /driver.findElements(By.xpath(“// iframe [contains(@id *,'FrameID')]”))。size();'其中FrameID是开始部分。 id,'Some:Same')并且包含(@ id,'name')]'为我做了诀窍,所以+1给你配对 – anujin

+2

你应该从这个答案中移除XPath选择器,它不会添加任何东西,只会淹没水域 – Liam

5

我看到的唯一选择是a[id$="name"](所有链接的ID由“名称”完成),但它不像它应该那样限制。