找出元素可见性

时间:2015-05-04 10:51:43

标签: java selenium

在我的应用程序中,我有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");

执行代码时,满足if条件,但是当我在第二个列表框中选择数据时,不选择数据。你能帮忙/建议吗,我需要在驱动程序中使用备用预期条件来查找元素。

2 个答案:

答案 0 :(得分:0)

您所述的问题在评论部分得到了解答。有3个不同的列表框,因此您需要3个不同的元素。

因此,您可以为3个不同的列表框使用相同的元素,它只代表第一个列表框。

希望他们也有自己独特的名字或身份。

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

答案 1 :(得分: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