我想检查Selenium中是否存在一个元素,如果存在,请将其分配给一个名称。
现在,我有这样的东西:
IWebElement size9 = driver.FindElement(By.CssSelector("a[data-value*='09.0']"));
但是,当不存在值为9的元素时,它将返回错误。有没有一种方法可以检查它是否存在,或者类似的东西?
有几种选择。我推荐这些。 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) { ... }
if(element != null) { ... }