在我的应用程序中,我有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条件,但是当我在第二个列表框中选择数据时,不选择数据。你能帮忙/建议吗,我需要在驱动程序中使用备用预期条件来查找元素。
答案 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