2012-08-28 20 views
62

Bir sorum var. Ben elemanlarını böyle bir şey var: = id ileCSS seçici (kimlik metni içerir)

<a> elemanın ismi Bazı someGenerated: Aynı: 0 = id ile

<a> elemanı Bazı someGenerated aynı: 0: id ile

<a> eleman soyadı = id ile

<a> elemanın ismi Bazı someGenerated: aynı: 1 = Bazı someGenerated aynı: 1: soyadı

İsim almak için CSS seçicisine ihtiyacım var. Sorun şu ki onu nasıl alacağımı bilmiyorum. a[id*='Some:Same']'u denedim - tüm <a> öğelerini döndürdü. Hangi kimliğin isimle bittiğini öğrenebildikten sonra. Ama bu fikri sevmiyorum. Başka bir seçici ile yapılabileceğini düşünüyorum.

+0

Gizli ilke nedeniyle gerçek bir örnek ekleyemiyorum :( – TarasLviv

+0

Ama bunu başka bir şekilde açıklayabilirim: Kimlik nitelikleri bir sonraki içerir: bazı oluşturulan karakterler + bazı statik karakterler +: elementIndexInTable: + tablodaki sütun adı – TarasLviv

cevap

89

bu deneyin:

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

Bu size

içeren kimlikli tüm a unsurları alacak bazıları: Aynı

ve

biten bir kimliğe sahip

nam e

+0

Eh, id * benim için işe yaramadı ve bir web elemanı ile değerlendirilemez dedi.' 'adı gibi id içeren iframe bulmak için kullandı.//driver.findElements(By.xpath ("// iframe [içerir (@id *, 'FrameID')]")). size(); 'FrameID bölümün başladığı yer. Her neyse, // a [şunu içerir: id, 'Some: Same') ve içerir (@ id, 'name')] '' hile yaptım.O yüzden +1 size eşleştirin – anujin

+2

Bu cevaptan XPath seçiciyi kaldırmalısınız, hiçbir şey eklemiyor ve sadece suları çamurluyor – Liam

5

Gördüğüm tek seçici a[id$="name"] ("ad" ile bitirme kimliğine sahip tüm bağlantılar) ancak gerektiği kadar kısıtlayıcı değil.