我想知道如何从值池的下拉列表中选择特定值。 我的逻辑是
1.Open the page
2.Fetch all the values from dropdown in list
3.Use a loop
4.Look for that value
5.If the value is not there,select the value x
对我来说,这就是说没有这样的元素异常
我们是否需要首先关注该元素
在我的代码中,我想选择Nextran Corporation
以下是我的代码
@Test(dependsOnMethods={"go2personalsettings"})
void setru()
{
driver.switchTo().frame("contentFrame");
Select rudropdown=new Select(driver.findElement(By.id("DefaultOrganisationDropDown")));
List<WebElement> drop=rudropdown.getOptions();
int e=drop.size();
String actual_ru="999425, NEXTRAN CORPORATION - JACKSONVILLE";
for(int i=0;i<e;i++)
{
String expected_ru=drop.get(i).getText();
if(!expected_ru.equals(actual_ru))
{
rudropdown.selectByValue(actual_ru);
}
}
答案 0 :(得分:0)
试试这个:
WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//li[contains(text(),'" + ElementValue + "')]")));
WebElement webElement = driver.findElement(By.xpath("//li[contains(text(),'" + ElementValue + "')]"));
webElement.click();
答案 1 :(得分:0)
您的代码中的逻辑与您所说的意图不符。您声明要从下拉列表中选择特定值(如果存在)。如果没有,请选择值&#39; x&#39;。您的代码无法选择价值&#39; x&#39;所以我不确定&#39; x&#39;但是你可以填写下面的内容。基本上,代码尝试选择期望值。如果该预期值不存在,它将抛出一个被捕获的异常,然后“&#39; x&#39;被选中。如果确实存在,则选择该值并选择&#39; x&#39;被跳过了。
driver.switchTo().frame("contentFrame");
Select rudropdown = new Select(driver.findElement(By.id("DefaultOrganisationDropDown")));
String actual_ru = "999425, NEXTRAN CORPORATION - JACKSONVILLE";
try
{
rudropdown.selectByValue(actual_ru);
}
catch (NoSuchElementException e)
{
// expected value does not exist, select the value x instead
rudropdown.selectByValue("x");
}