2011-09-19 1 views
13

이 질문은 jquery에서 큰 답변을 얻었으며 누군가 Java에서 this의 예를 들어 줄 수 있는지 궁금합니다.자바를 사용하는 공간이있는 webdriver 클래스 이름

내가하고있는 일은 공간이 문제이며 링크에서 설명을 볼 수 있지만 Java에서 처리하는 방법을 잘 모르며 클래스 이름을 변경할 수있는 권한이 없습니다.

firefox inspect ID에 대한 예제를 복사하여 붙여 넣습니다. 아래의 cssSelector 예제가 작동하지 않지만 뭔가 누락되었을 수 있습니다.

+7

'class = "현재 시간"은 ** 두 클래스 ** : current 및 time을 가진 요소를 선언한다는 점에 유의해야합니다. 그것은 하나의 클래스 인 '현재 시간'이 아닙니다. –

+0

@ JoachimSauer 초보자에게 좋은 정보입니다 – rakeshNS

답변

38

css 선택기를 사용할 수 있습니다. 당신은 '현재 시간'클래스의 태그 네임을 언급하지 않습니다. 내가 편집 # 1 제공 HTML을 기반으로

WebElement element = driver.findElement(By.cssSelector("input[class='current time']")); 
element.click(); 

,

은 당신의 코멘트에있는 HTML을 보면, 당신의 CSS를 선택 작업을 할 수 있도록이 입력으로 가정하고, 당신이 꽤있는 것 같습니다 webElement를 찾을 수있는 몇 가지 옵션. 여기에 옵션,

WebElement element = driver.findElement(By.cssSelector("a[class='current time']")); 
element.click(); 

또는이 너무 작동해야 요소가 링크이기 때문에

WebElement element = driver.findElement(By.cssSelector("a.current.time")); 
element.click(); 

또한 링크 텍스트를 사용할 수 있습니다.

WebElement element = driver.findElement(By.xpath("//a[@class='current time']")); 
element.click(); 

OR,

WebElement element = driver.findElement(By.xpath("//a[text() = 'url']")); 
element.click(); 
: 사용자가 제공 한 HTML에서 링크 텍스트는 또한 By.partialLinkText("partial link text here");

당신은 또한으로 XPath를 사용할 수 있습니다 사용할 수 있습니다

WebElement element = driver.findElement(By.linkText("url")); 
element.click(); 

'URL'입니다

+0

안녕하세요, 도움을 주셔서 감사합니다. 그게 나에게 효과가 없으면, 내가 클릭하려고하는 부분을 붙여 넣을거야. 이것은 classname이 하나의 단어 일 때 작동하지만, 아래 예제처럼 두 단어가 있습니다. 나는 cssSelector를 시도했지만 이것에 익숙하지 않고 쉽게 누락 될 수있다. url Green

+1

당신이 더 잘 볼 수 있도록 제공되는 HTML을 기반으로 대답을 업데이트했습니다. 사용해보고 – nilesh

+0

도움을 주셔서 감사합니다. 나는 피하려고 노력하고있는 linktext를 사용해야했다. 나는 이것에 익숙하지 않았기 때문에 현재 다른 예제가 작동하지 않는 이유를 말할 수 없었다. – Green

2

덜 취약한 테스트를 위해 또 다른 옵션은 클래스의 순서에 의존하지 않는 XPATH를 사용하는 것입니다. :

0

클래스 이름에 공간이 있으면 cssSelector Locator로 전환해야합니다.

아래와 같이 공백이 있으면 클래스 이름을 cssSelector로 변환하십시오. 귀하의 경우에는

WebElement element = driver.findElement(By.cssSelector(".current.time']")); 
element.click(); 

추신 : 를 추가합니다. [점]을 클래스 이름의 시작 부분에두고 으로 바꿉니다. [도트]을 사용하면 클래스 이름을 cssSelector로 변환 할 수 있습니다.