2017-12-18 6 views
0

@FindBy 주석을 사용하여 span 요소에 "Apple"텍스트를 가져 오려면 어떻게해야하는지 알고 싶습니다.@FindBy annotation을 Selenium에서 span 텍스트로 사용하는 방법은 무엇입니까?

그게 전부 HTML 코드 :

<span class="ui-cell-data">Apple</span> 

나는 그 같은 시도 :

@FindBy(className = "ui-cell-data:Samsung") 
WebElement customerName; 

을했지만 작동하지 않았다!

+0

findby의 classname 값 끝에 'Samsung :'을 추가해야하는 이유는 무엇입니까? – Grasshopper

+0

또한 'ui-cell-data'는 꽤 광범위한 클래스 *처럼 느껴지고 잠재적으로 다른 바람직하지 않은 요소와도 매치 될 수 있습니다. 하지만 페이지의 마크 업을 표시하지 않았으므로이 시점에서는 말할 수 없습니다. – alecxe

답변

0

당신은 체인 요소 룩업

@FindBys({@FindBy(className = "ui-cell-data")}) 
private WebElement element; 

같은 @FindBys를 사용하거나 아래에서 사용해 볼 수 있습니다 :

@FindBy(xpath = "//*[@class = 'ui-cell-data']") 
private WebElement element; 

또는

@FindBy(css = ".ui-cell-data") 
private WebElement element; 

는 희망이 당신의 문제를 해결합니다.

+0

@meert 안녕하세요! 너에게 효과가 있었 니? 내 의견을 알려주십시오. –

0

HTML 당신이 /와 스팬 요소 내에서 애플 텍스트를 얻을 수 있었다 maynot 수 공유 한 당으로 당신은

@FindBy(xpath = "//span[@class = 'ui-cell-data']") 
private WebElement element; 
0

아래에 언급 XPath를 함께 시도 할 수 있습니다 :

@FindBy(className = "ui-cell-data") 
WebElement customerName; 

코드가 거의 완벽했으나 className의 후미 부분은 :Samsung이 필요하지 않았습니다.

는 그러나 다시, class보고가 더 <span> 태그의 부부가 같은 class이 될 것으로 예상된다 때문이다. 그래서 의도 된 것을 유일하게 식별하기 위해 WebElement 우리는 부모 노드를 참조하고 그 특정 노드에 도달하기 위해 그 종속물을 따라야합니다.

  • cssSelector

    @FindBy(cssSelector = "span.ui-cell-data") 
    WebElement customerName; 
    
  • xpath

    @FindBy(xpath = "//span[@class='ui-cell-data']") 
    WebElement customerName; 
    
  • 012 :

    마지막으로, 주어진 HTML에 다음과 같은 코드 블록은 훨씬 청소기 될 것입니다