一尘不染

检查selenium中是否存在元素

selenium

我想检查Selenium中是否存在一个元素,如果存在,请将其分配给一个名称。

现在,我有这样的东西:

IWebElement size9 = driver.FindElement(By.CssSelector("a[data-value*='09.0']"));

但是,当不存在值为9的元素时,它将返回错误。有没有一种方法可以检查它是否存在,或者类似的东西?


阅读 280

收藏
2020-06-26

共1个答案

一尘不染

有几种选择。我推荐这些。
1.创建方法或Web驱动程序扩展。

public static IWebElement FindElementIfExists(this IWebDriver driver, By by)
{
    var elements = driver.FindElements(by);
    return (elements.Count >=1) ? elements.First() : null;
}

// Usage
var element = driver.FindElementIfExists(By.CssSelector("a[data-value*='09.0']"));

2.计算元素,如果有1个或更多元素,则获取它。

By by = By.CssSelector("a[data-value*='09.0']");
var element = driver.FindElements(by).Count >= 1 ? driver.FindElement(by) : null;

那你可以检查 if(element != null) { ... }

2020-06-26