2014-03-07 2 views
0

나는 5 개 버튼 한 페이지를 가지고 난 그냥이 두 가지 (인쇄 이름을하려고하면 나는 이름 (모두 선행 및 후행 공백으로)이름 매개 변수를 사용하여 요소를 찾을 수 CSSSelector 수없는

를 "검색"과 버튼을 찾을 필요 테스트 목적)에 대한 : 그 reutrning 텍스트가 "검색"하지만 두 번째 명령은 예외 "org.openqa.selenium.NoSuchElementException"을 던지는 첫번째 명령에 대한

System.out.println(driver.findElements(By.cssSelector("a.gxi-button")).get(1).getText()); 
System.out.println(driver.findElement(By.cssSelector("a.gxi-button[name=' Search ']")).getText()); 

누군가 내가 뭘 잘못 나를 인도 할 수 이리. 그것의 앞과 뒤 공간이 문제를 일으키는 것 같습니다. 아무도 이것을 처리하는 방법을 안내 할 수 있습니까? 참고 : '검색'과 '검색'을 모두 시도했지만 두 경우 모두 동일한 예외가 발생했습니다.

+0

을 사용하여 "검색"나는 앞에 약간의 공백을 볼 수 있습니다. " 그것이 문제를 일으키는 것입니까? "- 글쎄, 너 시도하지 않았 니? – Smutje

+1

선택기에서 작은 따옴표가 아닌 이중 따옴표를 사용하면 어떨까요? 'By.cssSelector ("a.gxi-button [name = \"Search \ "]") ' –

답변

1

부분 일치를 수행하기 위해 *=을 사용하기 만하면됩니다.

System.out.println(driver.findElement(By.cssSelector("a.gxi-button[name*='Search']")).getText()); 

또는 (여전히 작동하지 않습니다 위의 경우)

driver.findElement(By.xpath(".//a[@class='gxi-button' and contains(@name, 'Search')]")).getText(); 

를 XPath를 사용 또는 XPath에의 normalize-space 기능

driver.findElement(By.xpath(".//a[@class='gxi-button' and normalize-space(@name)='Search']).getText(); 
+0

저에게 감사드립니다. – user3356037

관련 문제