Java 如何根据选择查找元素

Java 如何根据选择查找元素,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,场景基于在下拉列表中选择一个值,然后它将显示Textbox/dropdown/MultiselectDD。我将if-else-if语句与IsDisplayed函数一起使用,并尝试使用boolean,但查找元素的速度非常慢。至少需要1分钟才能找到 是否有其他选项可以根据选择快速查找元素 提前谢谢。代码供您参考 public static boolean isElementPresent(String element) { try { driver.findElement(pa

场景基于在下拉列表中选择一个值,然后它将显示Textbox/dropdown/MultiselectDD。我将if-else-if语句与IsDisplayed函数一起使用,并尝试使用boolean,但查找元素的速度非常慢。至少需要1分钟才能找到

是否有其他选项可以根据选择快速查找元素

提前谢谢。代码供您参考

public static boolean isElementPresent(String element) 
{
   try {
       driver.findElement(parser.getObjLocator(element));
       return true;
   } catch (NoSuchElementException e) {
       return false;
   }
}
使用if-else-if

if(driver.findElement(parser.getObjLocator("DD")).isDisplayed())
{
    Select ddslectdid= new Select(driver.findElement(
        parser.getObjLocator("DD"))
    );
    ddslectdid.selectByVisibleText("XYZ");
}
else if(driver.findElement(parser.getObjLocator("DateDD1SelectedId")).IsDisplayed())
{
    Select ddscondn = new Select(driver.findElement(
        parser.getObjLocator("DateDD1SelectedId"))
    );  
    ddscondn.selectByVisibleText("ABC");
}
else if(driver.findElement(parser.getObjLocator("DsgnDD")).IsDisplayed())
{
    driver.findElement(parser.getObjLocator("DsgnDD")).click();
    driver.findElement(By.id("cst-searchinput")).sendKeys("Test");
    Thread.sleep(1000);
    driver.findElement(
        By.xpath(".//*[@id='Xpth']/div/div/span/div/div/div/ul/li[2]")
    ).click();
    Thread.sleep(1000);
}
else
{
    System.out.println("No Element Displays");
}

试试这个模块。

你能展示一下你的工作吗?发布一个代码示例,这样我们就可以帮助修复和测试你的特定问题。另外,如果您可以提供也有帮助的网站。done@chickenfeetwat是parse.getObjLocator()?请研究使用
page\u source()
函数以
字符串的形式检索html。如果每个下拉列表都有一个唯一标识符,那么您可以使用
page\u src.contains(uniqueID1)
字符串中搜索该子字符串。字符串比较很快,只需调用
page\u source()
一次。
public static boolean isElementPresent(String element)
{
    try {
        WebElement ele = driver.findElement(By.xpath(element));
        return ele.isDisplayed();
    } catch (NoSuchElementException e) {
        return false;
    }
}