2014-09-23 2 views
0

셀레늄 방법은 다음과 같이 정의되어 있습니다. 이 메소드는 personName 문자열을 받아 공백을 제거한 후 "li"요소에서 찾으려고 시도합니다.2 가지 경우에 셀레늄 방법을 다시 사용하십시오.

지금 나는 아래의 방법을 업데이트하려면 어떻게 공간 (PERSONNAME)

을 함께 공간 (personNameWithoutSpaces)없이

  1. 을 확인하기 위해 같은 방법을 다시 사용하려는 (한 페이지에서 이름은 공백없이 렌더링 될 수 있고 다른 페이지에서는 공백으로 렌더링 될 수 있기 때문에) 두 경우 모두에서 작동합니까?

    public WebElement getPersonByText(String personName) { 
        String personNameWithoutSpaces = personName.replaceAll("\\s+",""); 
        return getHelper().getVisibleElement(By.xpath("//div[@id='display']//li[contains(@class, 'person') and contains(.,'" + personNameWithoutSpaces + "')]")); 
    } 
    
    public WebElement getVisibleElement(final By by) { 
         return getVisibleElement(by, DEFAULT_TIMEOUT, TimeUnit.SECONDS, DEFAULT_TIME_INTERVAL, TimeUnit.MILLISECONDS); 
        } 
    

    내가에서는 if..else 문을 사용해야 할 경우이 개 시도 ... catch 블록 또는를 사용해야 할 경우 확실하지 ,,, 영업 이익의 의견에 따르면

+0

이 메소드를 사용하여 모든 페이지에 대해 공백을 포함하거나 포함하지 않는 두 가지를 모두 확인 하시겠습니까? –

+0

두 가지 경우를 확인하기위한 일반적인 방법을 쓰고 싶습니다. 이것들은 diff 페이지의 종류입니다 ... – testndtv

+0

은'personNameWithoutSpaces'가 공백 (personName)과 함께 있으면 존재하지 않을 것입니까? –

답변

0

,

public WebElement getPersonByText(String personName) { 

    try{ 
     driver.findElement(By.xpath("//div[@id='display']//li[contains(@class, 'person') and contains(.,'" + personName + "')]") 
     return getHelper().getVisibleElement(By.xpath("//div[@id='display']//li[contains(@class, 'person') and contains(.,'" + personName + "')]")); 

     } 
    catch(NoSuchElementException e){ 
     String personNameWithoutSpaces = personName.replaceAll("\\s+",""); 
     return getHelper().getVisibleElement(By.xpath("//div[@id='display']//li[contains(@class, 'person') and contains(.,'" + personNameWithoutSpaces + "')]")); 
     } 

} 
+0

실제로 personName이 동일 할 것입니다.이 점을 고려하여 논리를 작성해야합니다 ... – testndtv

+0

? John Miller라는 사람 이름을 가지고 있고 한 페이지에는 John Miller가 있고 다른 하나에는 John Miller가 있습니다. –

+0

내 말은 ... 나는 항상 personName을 "my name is xyz "... 그러나 페이지의 렌더링은 다음 중 하나 일 수 있습니다. a) 내 이름은 xyz이거나 b) mynameisxyz – testndtv

관련 문제