我在网页上有一组记录,当单击记录时,会显示一个“删除”链接(实际上是“未隐藏”,因为它实际上总是在那里)。
在尝试访问此“删除”链接时,我正在使用它的值。
当我使用Driver.FindElement
时,它会返回第一个删除链接,即使它是隐藏的,因此无法单击它(也不应该因为它不是正确的链接)。
所以,我基本上想做的就是只找到非隐藏的链接。下面的代码有效,但是当它遍历每个删除链接时,我担心它可能效率低下。
有没有更好的办法?
public class DataPageModel : BasePageModel
{
private static readonly By DeleteSelector = By.CssSelector("input[value=\"Delete\"]");
private IWebElement DeleteElement
{
get
{
var elements = Driver.FindElements(DeleteSelector);
foreach (var element in elements.Where(e => e.Displayed))
{
return element;
}
Assert.Fail("Could not locate a visible Delete Element");
return null;
}
}
}