2011-01-10 5 views
0
@FindBy(how = How.XPATH, 
     using = "//div[@class='dynamic-main-content'] 
        //div[label[text()='Number of At Fault Claim Free Years']] 
         /select") 
     private WebElement _faultClaimFreeYearsDropDown; 

실제 HTML에는 레이블 텍스트에 휴식이 있습니다. XPATH는 어떻게 작성해야합니까?레이블에 끊기가 포함 된 xpath 표현식이 필요합니다.

+1

HTML 샘플을 제공 할 수 있습니까? – Flack

+1

@ user569254 : "break"로 'br' 요소를 의미하는 경우'오류 발생시 무료 노드 수 '문자열 값의 ** 텍스트 노드 **가 없습니다. 생각하지 않니? –

답변

1

, 돈 [text()='the text']을 사용하려면 [normalize-space(.)='the text']을 사용하십시오. text() 대신 .을 사용하면 일치하는 텍스트에 나타나는 주석 (또는 요소 마크 업)과 같은 것에 코드를 복원 할 수 있습니다.

+0

마술처럼 작동하고 내게 신선한 아이디어를 많이 주셔서 감사합니다. – Maalamaal

0

레이블 텍스트의 라인 브레이크 (캐리지 리턴 및/또는 줄 바꿈) 또는 추가 공백이 있다면 당신은에 normalize-space()를 사용할 수 labeltext() : 또한

//div[@class='dynamic-main-content']//div[label[normalize-space(.)='Number of At Fault Claim Free Years']]/select

+0

// div [@ class = 'dynamic-main-content'] // div [label [normalize-space (text()) = '오류 클레임 무료 년수]]/select - 여기서는 작동하지 않습니다. . 나는보기 xpather를 사용하여 그것을 chk로 tryign 오전 그리고 어떤 결과를 보여주지 않습니다 – Maalamaal

+0

그것은 HTML의 샘플을 가지고 도움이 될 것입니다. 우리가 그것이 무엇을 선택하고 있는지 알지 못하면 왜 당신에게 말하기가 어렵습니다. 제공 한 XPATH에 줄 바꿈 외에 다른 문제가있을 수 있습니다. 줄 바꿈을 조정하면 문제가 해결됩니다. –

관련 문제