在findelements迭代中从findelement获取n



我正在元素列表中搜索一个元素。如果找到一个元素,我会返回迭代的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#来写。

相关内容

  • 没有找到相关文章

最新更新