Java 如何根据选择查找元素
场景基于在下拉列表中选择一个值,然后它将显示Textbox/dropdown/MultiselectDD。我将if-else-if语句与IsDisplayed函数一起使用,并尝试使用boolean,但查找元素的速度非常慢。至少需要1分钟才能找到 是否有其他选项可以根据选择快速查找元素 提前谢谢。代码供您参考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
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;
}
}