2016-09-07 18 views
0

私はexcelに値を持ち、ドロップダウンで要素の配列に存在をチェックしています。条件が合格したら、それを保存してクリックします。文字列に格納しようとしましたが、クリックできません。私はWeb要素に格納しようとしましたが、失敗しました。親切に助けてください。一致条件をセレニウムを使用してクリックできる変数に格納する方法

List<WebElement> countrylist = driver.findElements(By.cssSelector("ul.ui-multiselect-checkboxes li label[for*='ddlBU'] span")); 
List<String> all_countrylist = new ArrayList<>(); 
Thread.sleep(1000); 
String selectedcountry = driver.findElement(By.xpath("html/body/div[9]/ul/li[2]/label/span")).getText(); 
WebElement clickselectedcountry = driver.findElement(By.xpath("html/body/div[9]/ul/li[2]/label/span")); 
Thread.sleep(1000); 
for(int cui = 0; cui < countrylist.size(); cui++) 
{ 
    all_countrylist.add(countrylist.get(cui).getText()); 
    if((countrylist.get(cui).getText()).equalsIgnoreCase(countrysheet.getCell(0, 2).getContents())) 
    { 
     System.out.println("the Country " + (countrysheet.getCell(0, 2).getContents()) + " which is existing"); 
     String clickcountry = (countrylist.get(cui).getText()); 
    } 
    else 
    { 
     System.out.println("\nSelected Country " + (countrysheet.getCell(0, 2).getContents()) + " which is not existing"); 
    } 
} 
+0

遭遇しているエラーメッセージを表示してください。 –

答えて

0

下記のコードを試してください。

String countryToBeSelected = countrysheet.getCell(0, 2).getContents(); 

By selectedCountryLocator = By.xpath("html/body/div[9]/ul/li[2]/label/span"); 

String selectedcountry=driver.findElement(selectedCountryLocator).getText(); 

//If Country is other than selected country, then click and open the list 
if(!countryToBeSelected.equals(selectedcountry)){ 
     WebElement clickselectedcountry=driver.findElement(selectedCountryLocator); 
     clickselectedcountry.click(); 

     //Get List Of All Countries In WebElement List 
     List<WebElement> countrylist = driver.findElements(By.cssSelector("ul.ui-multiselect-checkboxes li label[for*='ddlBU'] span")); 

     //Store all country details in list 
     List<String> all_countrylist=new ArrayList<String>(); 

     //Iterate over WebElement list and store country values in string list 
     for(WebElement country : countrylist){ 
      all_countrylist.add(country.getText()); 
     } 

     //Get the expected country index 
     int elementIndex = all_countrylist.indexOf(countryToBeSelected); 

     //Click on After finding the Country Index 
     countrylist.get(elementIndex).click(); 

} 
+0

条件の後のループの外へのジャンプ。以下のステートメントは実行されません。 - WebElement clickselectedcountry = driver.findElement(selectedCountryLocator); \t \t clickselectedcountry.click(); If条件では値は同じです。それは "WebElementのclickselectedcountryは変数に解決することはできません。 –

+0

私は選択する国と選択されている国が選択されている場合は、国を選択する必要はないと思います。選択されている国と国が選択されていない国が異なる場合は、選択した国をクリックしてドロップダウン値を開き、すべての要素を反復して期待値と一致させてをクリックします。 –

+0

いいえ、条件が一致すれば、特定の国私はこの試みた:。(。)(countrylist.get(CUI).getText()equalsIgnoreCase(countrysheet.getCell(0,2).getContents()))場合を \t \t \t { \t \t \t \t \t \t \t \t System.out.println( "国" +(countrysheet.getCell(0、2).getContents())+ "既存"); \t \t \t \t \t文字列clickcountry =(countrylist.get(cui).getText()); \t \t \t \t Thread.sleep(1000); \t \t \t \t WebElement clickselected = driver.findElement(By.xpath( "// *(@ span、" + clickcountry + "))"); \t \t \t \t Thread.sleep(1000); \t \t \t \t clickselected.click();また \t \t \t \t \t \t \t \t} –

関連する問題