2016-08-22 3 views
0

regiondropdownUnable to saveUI/web Page 드롭 다운 상자에 표시된 모든 확인란에서 텍스트를 가져 와서 해당 값을 db와 비교하려고합니다. 도와주세요. options.size()로 크기를 계산할 수 있지만 db의 각 문자열과 비교할 텍스트/문자열을 가져올 수 없습니다.아래 코드의 범위에서 텍스트를 가져 오는 방법

//Click on Select Box 
Thread.sleep(500); 
driver.findElement(By.xpath(".//*[@id='DivZone']/div/button")).click(); 
Thread.sleep(500); 
List<WebElement> options =  
driver.findElements(By.xpath("//input[contains(@name, 
'multiselect_ddlZone')]")); 
//List<WebElement> options = driver.findElements(By.cssSelector(".ui- 
corner-all.ui-state-hover>span")); 
List<String> all_elements_text=new ArrayList<>(); 
if(region!=null) 
{ 
for(int i=1; i<options.size(); i++) 
{ 
all_elements_text.add(options.get(i).getText()); 
System.out.println(options.get(i).getText()); 
boolean isThere = false; 
for (int j = 0; j < region.size(); j++) 
{ 
if 
(options.get(i).getText().equalsIgnoreCase(region.get(j))) { 
// Code to display warning 
isThere = true; 
} 
} 
if(isThere) 
System.out.println(options.get(i).getText()+" is matched 
with Database data"); 
else 
System.out.println(options.get(i).getText()+" is not matched 
with Database data"); 
} 
} 

debug

+0

텍스트/문자열을 가져올 수 없다는 것을 의미합니까 ?? 나는 거기에 어떤 예외 또는 다른 것을 원하겠습니까 ??? –

+0

예외가 없으면 변수가 비어있어서 텍스트를 저장하려고합니다. –

+0

이제'System.out.println (options.get (i) .getAttribute ("textContent"));와 같이 시도해보고 알려주세요. .. –

답변

0

는 지금, 각 "옵션은"모든 텍스트가없는 것 "입력"WebElement이다. 불행하게도 getText()이 작동하지 않는

List<WebElement> options = driver.findElements(By.cssSelector("ul.ui-multiselect-checkboxes li label[for*='ddlZone'] span")); 
+0

모든 옵션에서 텍스트를 원합니다. 여기, 당신의 코드에서 텍스트를 가져 오는 방법을 쓰는 방법은 무엇입니까? CSS의 코드를 사용하는 옵션의 크기를 얻지 못하고 있습니다 .... 첨부 된 이미지를 참조하십시오. –

+0

아! 내 잘못이야. 물론 UI에는 다른 많은 드롭 다운 메뉴가 있습니다. "for"속성에 "ddlZone"이있는 레이블 요소만으로 제한 할 경로를 편집했습니다. 그게 효과가있다. (그것이 dd1Zone 또는 ddlZone이어야하는지 알기는 어렵습니다.) –

0

경우 아래 getAttribute("textContent"‌​)를 사용하여 시도해야합니다 : 그런 다음 스팬 컨텐츠를 당겨, 목록 항목에 대한 검색을 시도 할 수 있습니다 -

System.out.println(options.get(i).getAttribute("textContent"‌)); 

또는 다음과 같이 getAttribute("innerHTML"‌)를 사용해보십시오 : -

System.out.println(options.get(i).getAttribute("innerHTML"‌)); 
+0

@Breaks Software, 위 경로로 저장할 수 없습니다. 스크린 샷을 찾으십시오 –

+0

소프트웨어를 고장 냈습니다. 작동하지만 다른 경로에서 같은 경로가 작동하지 않습니다. 아래 코드 –

+0

에 대해 작동합니다. 목록 zonelist = driver.findElements (By.cssSelector ("ul.ui -multiselect-checkboxes li label [for * = 'ddlZone'] span "))); 리스트 all_zonelist = new ArrayList <>(); 위한 \t (INT의 zui = 0; zui

0

는 그것을 "www.tripadvisor.in"에 대한 시도를주고, 그것을 만들 수 (예제에서 루프를 제한하기 위해 'break'문 사용). 아래 코드는 내가 시도한 코드입니다

public class SelectList { 
WebDriver driver; 

By currencyDrop = By.xpath(".//*[@id='CURRENCYPOP']/span"); 
By currency = By.xpath(".//*[@id='GLOBAL_CURRENCY_PICKER']/ul/li"); 

@Test 
public void f() throws InterruptedException { 

driver = new FirefoxDriver(); 
driver.get("https://www.tripadvisor.in/"); 
driver.manage().window().maximize(); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

driver.findElement(currencyDrop).click(); 

//Below is the list of options present in dropdown(per DB) 
String[] expList = {"INR ₹ Indian Rupees", 
        "USD US$ U.S. Dollars", 
        "EUR € Euros"}; 

List <WebElement>countryList = driver.findElements(currency); 

int i =0; 

for(WebElement curr:countryList){ 
    if (i>2){ 
     break; 
    } 
    if (curr.getText().equals(expList[i])){ 
     System.out.println("ActCurrency" + curr.getText()); 
     System.out.println("ExpCurrency" + expList[i]); 
i++; 
    } 
} 
} 
}