Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if Element exists in Selenium

Tags:

c#

selenium

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?

like image 212
Max Avatar asked Nov 23 '16 01:11

Max


1 Answers

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) { ... }

like image 135
Buaban Avatar answered Sep 20 '22 12:09

Buaban