现在,我想从下拉列表中选择第一个值,然后对其执行一些操作,然后我想从相同的下拉列表中选择第二个值,并对其执行相同的操作。 这是我的代码:
WebElement bldgs=Fn_GetWebElement(CreateSSIObject.getProperty("Bldgselect"));
Select Bldg_select=new Select(bldgs);
List<WebElement> dropdownvalues = Bldg_select.getOptions();
int count=dropdownvalues.size();
System.out.println("Total number of values are :"+count);
for(int i=1;i<count;i++) {
if(dropdownvalues.get(i).isEnabled()) {
Bldg_select.selectByIndex(i);
System.out.println("Not Working :"+i);
waitForWebPagetoLoad(2000);
WebElement search_BTN=Fn_GetWebElement(CreateSSIObject.getProperty("search_Btn"));
fn_Click(search_BTN);
WebElement add_VEND=Fn_GetWebElement(CreateSSIObject.getProperty("add_vendors"));
fn_Click(add_VEND);
WebElement vendorName=Fn_GetWebElement(CreateSSIObject.getProperty("vendor_Name"));
fn_Click(vendorName);
vendorName.sendKeys(vendor);
waitForWebPagetoLoad(5000);
WebElement search_BTN1=Fn_GetWebElement(CreateSSIObject.getProperty("search_Btn"));
fn_Click(search_BTN1);
WebElement selectVendor=Fn_GetWebElement(CreateSSIObject.getProperty("select_Vendor"));
fn_Click(selectVendor);
WebElement addToSite=Fn_GetWebElement(CreateSSIObject.getProperty("AddTo_Site"));
fn_Click(addToSite);
}
}
在这里,我正在寻找一个元素(基本上是下拉ID),然后使用带有i for循环的selectbyindex选择每个值。然后我单击一个按钮,并对它执行更多操作。现在,它仅选择第一个值并进行上述所有操作。但是选择第二个值并执行相同的步骤并不会返回for循环。
答案 0 :(得分:0)
能否请您尝试以下解决方案?我不确定您是tryig根据选择执行什么操作,但是我认为以下代码可以解决您的问题。
Select drpCountry = new Select(driver.findElement(By.name("Locator")));
List <WebElement> elementCount = drpCountry.getOptions();
int iSize = elementCount.size();
for(int i =0; i<iSize ; i++)
{
String sValue = elementCount.get(i).getText();
System.out.println(sValue);
drpCountry.selectByIndex(i);
if(sValue.equalsIgnoreCase("Selection1")){
//code to be executed if condition1 is true
}else if(sValue.equalsIgnoreCase("Selection2")){
//code to be executed if condition2 is true
}
else if(sValue.equalsIgnoreCase("Selection3")){
//code to be executed if condition3 is true
}
else{
//code to be executed if all the conditions are false
}
}
答案 1 :(得分:0)
我不太了解您的问题,但我发现有2个问题可能会使您感到困惑。
您的循环从i设置为1开始。由于列表是从零开始的索引,因此您应该从0开始
您要在循环外部提取下拉列表值,然后使用索引在循环内部引用它们。但是,每次迭代中您都会执行很多动作和事件。
您最好在每次迭代中再次提取值,以确保所有引用都是最新的并且没有陈旧。