2015-05-04 164 views
0

在我的應用程序中,我有3個列表框,當我選擇第一個列表框中的任何值時,生成按鈕處於進行狀態(按鈕更改爲旋轉符號),相應的數據被加載剩餘的列表框和生成按鈕應該出現。對於這種狀態,我寫了像找出元素可見性

WebElement datarefresh_element = (new WebDriverWait(driver, 20)).until(ExpectedConditions.visibilityOfElementLocated 
(By.id("butGenerate"))); 


if(datarefresh_element.isDisplayed()==true) 
{ 

     System.out.println("Generate button is available"); 
} 
    Select Dimension_selection = new Select (driver.findElement(By.id("cbDimension"))); 
      Dimension_selection.selectByVisibleText("Net Flow"); 
      Dimension_selection.selectByVisibleText("Total Sales"); 

的代碼,同時執行代碼,如果條件滿足,但是當我選擇在第二個列表框中的數據,沒有選擇的數據。您能否請幫助/建議,我需要使用驅動程序中的替代預期條件來查找元素。

+1

請編輯您的問題添加你在哪裏更新的選擇標準代碼以及列表框選擇 – LittlePanda

+0

數據的代碼部分 – Krishna

+1

你說有3個下拉菜單吧?那麼你應該有三個'Select'對象。我不知道爲什麼你會首先選擇'Net Flow',然後嘗試從同一個下拉列表中選擇'Total Sales'。 – LittlePanda

回答

0

您所述的問題在註釋部分得到了解答。有3個不同的列表框,因此你需要3個不同的元素。

因此,您可以爲3個不同的列表框使用相同的元素,它只表示第一個列表框。

希望他們也有自己獨特的名稱或ID。

Select Dimension_selection2 = new Select (driver.findElement(By.id("name of second box"))); 
Dimension_selection2.selectByVisibleText("Net Flow"); 
+0

你必須創建一個新的選擇Web元素。在我的舊回覆中添加了一個示例 –

+0

我使用的唯一值僅用於標識元素,在第一個列表框中選擇值時,生成按鈕從按鈕更改爲正在處理的圖像,此時其他兩個選擇框處於禁用狀態。當數據被加載到剩餘的盒子中時,進度圖像被改變爲生成按鈕,這是確認數據被加載在盒子中,之後只有我可以選擇第二個列表框中的值。 – Krishna

+0

好的。那麼你需要等待你的下一個選擇點擊。 WebDriverWait等待; wait.until(ExpectedConditions.refreshed(ExpectedConditions.elementToBeClickable(通過))); –

0

每當你創建一個對象,並且如果對它做了任何修改/更新...再爲它創建一個新對象。

WebElement dropDown1 = driver.findElement(By.id("dropDown1Id")) 
Select dropDown1Selection = new Select(dropDown1); 
dropDown1Selection.selectByVisibleText("dd1Value"); 

//Now as you have done the selection of dropDown1 
//Add the code for wait so as the other dropdowns value are updated 

//Create object of second drop down now - after the selection of dropdown1 item 
WebElement dropDown2 = driver.findElement(By.id("dropDown2Id")) 
Select dropDown2Selection = new Select(dropDown2); 
dropDown2Selection.selectByVisibleText("dd2Value"); 

// If you are creating second dropdown object prior to updation (selection of an item from dropdown1) -- you will not to do the selection 
+0

僅爲第二個下拉菜單創建新元素。它沒有選擇列表框中的值。第一個下拉列表是單選,第二個列表框是多選框。 – Krishna

+0

嘗試再次創建對象>> WebElement dropDown2Second = driver.findElement(By.id(「dropDown2Id」))>>選擇dropDown2SelectionSecond = new Select(dropDown2Second); >> dropDown2SelectionSecond .selectByVisibleText(「dd2Value2」); –