CSS 선택기 (id에 텍스트의 일부 포함)


92

질문이 있습니다. 다음과 같은 요소가 있습니다.

<a> id = someGenerated Some : Same : 0 : name 인 요소

<a> id = someGenerated Some : Same : 0 : surname 인 요소

<a> id = someGenerated Some : Same : 1 : name 인 요소

<a> id = someGenerated Some : Same : 1 : surname 인 요소

이름을 얻으려면 CSS 선택기가 필요합니다. 문제는 내가 그것을 얻는 방법을 모른다는 것입니다. 나는 시도했다 a[id*='Some:Same']-모든 <a>요소를 반환했습니다 . ID가 이름으로 끝나는 요소를 얻을 수 있습니다. 하지만이 아이디어가 마음에 들지 않습니다. 다른 선택기로 할 수 있다고 생각합니다.


<a>선택하려는 태그와 원하지 않는 태그의 실제 예를 추가해 주시겠습니까 ? 실제 코드를 보는 것이 더 쉬울 것입니다.
andyb

나는 때문에 :( 기밀 정책의 실제 예를 추가 할 수 없습니다
TarasLviv

하지만 다른 방법으로 설명 할 수 있습니다. ID가 다음이 포함 속성 : 일부 생성 된 문자 + 약간의 정적 문자 + : elementIndexInTable : + 열 이름을 테이블에
TarasLviv

그리고 당신이 원하는 사람들의 기준은 무엇입니까?
Tarken

답변:


144

이 시도:

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

이렇게하면 aID가 포함 된 모든 요소가 표시됩니다.

일부 : 동일

그리고 이드로 끝나는

이름


글쎄, id *는 나를 위해 작동하지 않았고 웹 요소로 평가할 수 없다고 말했습니다. <constant><variable><constant>이름 과 같은 ID를 가진 iframe을 찾기 위해 사용했습니다 . //driver.findElements(By.xpath("//iframe[contains(@id*,'FrameID')]")).size();여기서 FrameID는 시작 부분입니다. 어쨌든, //a[contains(@id,'Some:Same') and contains(@id,'name')]나를 위해 트릭을했습니다. 그래서 친구에게 +1하십시오.
anujin 2013-10-12

2
이 답변에서 XPath 선택기를 제거해야합니다. 그것은 아무것도 추가하지 않고 단지 물을 진흙으로 만들고 있습니다
Liam

1
@CosminO *다음 이 필요 id합니까?
cokedude

@cokedude * = 연산자는 적어도 연산자 뒤에 값이 있어야 함을 의미합니다. $ = 연산자를 사용하여 다른 것으로 끝나야한다는 두 번째 조건과 함께 작동합니다. 자세한 설명은 다음을 참조하십시오 . w3schools.com/css/css_attribute_selectors.asp 짧은 답변. *는 id 옆이 아니라 = 옆에 있으며 특별한 의미를 가진 연산자를 형성합니다
CosminO

21
<div id='element_123_wrapper_text'>My sample DIV</div>

연산자 ^ -주어진 값으로 시작하는 요소 일치

div[id^="element_123"] {

}

연산자 $-주어진 값으로 끝나는 요소 일치

div[id$="wrapper_text"] {

}

연산자 *-주어진 값을 포함하는 속성이있는 일치 요소

div[id*="wrapper_text"] {

}

8

내가 보는 유일한 선택자는 a[id$="name"](ID가 "이름"으로 끝나는 모든 링크)이지만 제한적이지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.