Ich habe eine Frage. Ich habe Elemente wie diese:
<a>
Element mit id = someGenerated Some: Same: 0: name
<a>
Element mit id = someGenerated Some: Same: 0: Nachname
<a>
Element mit id = someGenerated Some: Same: 1: name
<a>
Element mit id = someGenerated Some: Same: 1: Nachname
Ich brauche CSS-Selektor, um Namen zu bekommen. Das Problem ist, dass ich nicht weiß, wie ich es bekommen soll. Ich habe es versucht a[id*='Some:Same']
- es wurden alle <a>
Elemente zurückgegeben. Nachdem ich Elemente erhalten kann, endet die ID mit dem Namen. Aber ich mag diese Idee nicht. Ich denke, dass es mit einem anderen Selektor gemacht werden kann.
css
css-selectors
webdriver
TarasLviv
quelle
quelle
<a>
Tags hinzufügen , die Sie auswählen möchten, und solche, die Sie nicht möchten. Es wird einfacher sein, den echten Code zu sehen.Antworten:
Versuche dies:
Dadurch erhalten Sie alle
a
Elemente, deren ID enthalten istund die ID endet mit
quelle
<constant><variable><constant>
Namen hat.//driver.findElements(By.xpath("//iframe[contains(@id*,'FrameID')]")).size();
wo FrameID Teil beginnt. Sowieso//a[contains(@id,'Some:Same') and contains(@id,'name')]
hat der Trick für mich getan. Also +1 zu dir Kumpel.*
nächstenid
?Der Operator ^ - Elemente abgleichen, die mit dem angegebenen Wert beginnen
Der Operator $ - Match-Elemente, die mit einem bestimmten Wert enden
Der Operator * - Entspricht Elementen, deren Attribut einen bestimmten Wert enthält
quelle
Der einzige Selektor, den ich sehe, ist
a[id$="name"]
(alle Links mit ID-Endung nach "Name"), aber er ist nicht so restriktiv wie er sollte.quelle