2013-04-09 3 views
2

제출 요소를 찾으려고합니다. 내 HTML 구조는 다음과 같습니다. 불을 지르고를 사용하여 브라우저에서CSS 셀렉터가 셀레늄 그리드에서 요소를 찾지 못합니다.

<div> 
    <span class="combutton"><a href="javascript:void(0);">Submit</a></span> 
</div> 
<div> 
<span class="combutton"><a href="#Cancel">Cancel</a></span> 
</div> 

나는에 완벽하게 제출 클릭 수

$('div .combutton')[0].click() 

을 시도했다. 그러나 셀레늄 드라이버를 사용하면이 요소를 찾을 수 없습니다. 방법

driver.findElement(By.css("CSSSELECTORSTRING")) 

답변

0

안에는 a이 아닙니다.

당신이 그렇지 않으면 그것을 방해하는 마크 업의 특정 부분을 생략하지 않는 한이 작동한다 : 왜 당신이 CSS 셀렉터 질문하는 XPath 답을주고있다

driver.findElement(By.cssSelector("div:first-child .combutton a")).click(); 
+0

driver.findElement (By.cssSelector (". combutton : first-child a")). 클래스 combutton을 가진 첫 번째 자식 안쪽에 앵커 태그를 찾습니다. – sandy

+0

@sandy : 각'.combutton'이'div'의 유일한 자식이므로 안됩니다. – BoltClock

+0

Oh.gotcha.my bad. – sandy

0

그 시도하여이 작업을 수행하는 방법을 가르쳐주세요 :

driver.findElement(By.xpath("//div span.combutton a[contains(.,'Submit')]")).click(); 

또는 그것이 span 클릭 이후 영향을주지해야 방화범 무슨 짓을

driver.findElement(By.xpath("//div span.combutton[0] a")).click(); 
+1

를? – BoltClock

+0

사실, 난 cssSelector 명령에 대해 잘 모르겠습니다. 그리고 현명하게도이 사람은 웹 브라우저에서 xpath로 테스트했으며 cssSelector 구문에 대해 알지 못합니다. 그래서 나는 그에게 그가 조금 더 이해할 수있는 답을 준다;) – e1che

관련 문제