2017-05-22 2 views
-1

나는 부모 웹 요소를 검색하고 싶은의 의사 요소 (그것은 부모 이름이 될 수있는 경우)하지만, 지금까지의 내가 의사를 검색에 적합하지웹 요소를 검색 셀레늄의 방법을 알고 요소.
그러나 자바 스크립트의사 요소가 자유롭게 조작, 그래서 나는 CSS를 선택/XPath는 의사 요소에 대한 부모 웹 요소 (에 반환 할 수있는 방법이 있는지, 묻고 싶다 더 정확한 ":: after") JavaScript.selenium webdriver를 사용하여 의사 요소의 부모를 찾는 방법은 무엇입니까?

<html> 
<body> 
<label id="parent"> 
<span> Some text </span> 
::after 
</label> 
</body> 
</html> 

그리고 나는 그것을 좀하고 싶습니다 : : 즉
, 나는이있어 "# 부모를"

미리 감사드립니다.

답변

0

당신이 범위의 텍스트를 기반으로 부모를 선택해야하는 경우, 당신은이 같은 사용할 수 있습니다

driver.findElement(By.xpath("//label[.//span[text()='Some Text']]")); 

은 위의 코드는 텍스트와 스팬 뒤에 해당 레이블을 찾는 데 도움이됩니다 = " 일부 텍스트 ".

당신이 태그의 확실하지 않은 당신은 자바 스크립트를 사용하여 결과를 얻기의 확신합니다. 아래의 구문을 사용하여 셀레늄에 자바 스크립트 코드를 실행하십시오 : (파이썬)

driver.execute_script("document.querySelector('#item'), ':after'") 

업데이트도 부모를 찾을 수 귀하의 경우 귀하의 요구 사항에 따라 스크립트.

날 경우이 나던 도움을 당신이 아래의 의견을 알려주세요.

+0

요점은 그 ":: 후" 요소의 일부가 아닌 :) 는 (하나의 나의 경우) 장소의 다양한 많은에 위치 할 수있는 독립적 인 요소, 당신의 요점을 파악 didnt는 – Kiseki

+0

입니다. 텍스트가 없다는 것을 의미합니까? 요소가 반드시 후, 어떤 태그 뒤에 설정할 수 있습니다 후 –

+0

나는 :: 말은, 나는 요소 뒤에 : (아마도 모든을)의 위치를 ​​검색하기 위해, 또는 특정 웹 요소가 있는지 여부 :: 의사 요소 다음에 확인하고 싶습니다 아이 – Kiseki

0

찾기 자식 요소는 첫째와 같이, 자식 요소에 컨텍스트 노드를 추가,

WebElement child = driver.findElement(By.xpath("xpath of child")); 
WebElement parent = child.findElement(By.xpath("./..")); 
관련 문제