我正在元素列表中搜索一个元素。如果找到一个元素,我会返回迭代的n。
我想知道还有其他更快的方法吗?目前,我可以通过这种方式达到这个目的。但这需要时间来处理。
var iBtnFix = 0;
var elProfiles = driver.FindElements(By.ClassName("xxx")); // list
for (var i = 0; i < elProfiles.Count; i++)
{
try
{
elProfiles[i].FindElement(By.XPath(".//button[contains(@class,'yyy')]"));
iBtnFix = i;
break;
}
catch (Exception ex)
{
}
}
最好将if-else条件与return语句一起使用,而不是try-catch块。您可以创建方法isElementVisible((,该方法根据元素的可见性返回布尔值,并在if条件中使用其响应。
例如:
if(isElementVisible("your locator")
{
return index;
}
例如:
public boolean isElementVisible(By by){
boolean isElement = false;
try{
isElement = driver.findElement(by).isDisplay();
}catch(NoSuchElementFoundException e){
isElement = false;
}
return isElement;
}
这是java代码。你可以用C#来写。