I want to check if an element exists in Selenium, and if it does, assign it to a name.
Right now I have something that looks like this:
IWebElement size9 = driver.FindElement(By.CssSelector("a[data-value*='09.0']"));
However, when that element that has the value of 9 does not exist, it returns an error. Is there a way I can check to see if it exists, or something of that sort?
There are several options. I recommend these.
1. Create a method or web driver extension.
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. Count the element, get it if there are 1 or more elements.
By by = By.CssSelector("a[data-value*='09.0']");
var element = driver.FindElements(by).Count >= 1 ? driver.FindElement(by) : null;
Then you can check if(element != null) { ... }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With