Сделать кастомное ожидание на свойство Display

Необходимо реализовать кастомное ожидание для свойства Display.
Вот два варианты будут ли они валидны к данному заданию или необходимо переделать?
Основная часть кода для поиска элемента

[TestFixture]
public class Tests
{
    private IWebDriver _chromeDriver = new ChromeDriver();
    private CustomDisplay custom = new CustomDisplay();

    [SetUp]
    public void Setup()
    {
        _chromeDriver.Navigate().GoToUrl("https://www.google.com/");
    }

    [Test]
    public void Test1()
    {
        var xPath = "//input[@name='q']";
        _chromeDriver.FindElement(By.XPath(xPath));

        var rezult = custom.FirstTryIsElementDisplay(xPath, _chromeDriver, _chromeDriver.Url);

        Assert.IsTrue(rezult);
    }
}

Первый вариант.

public bool FirstTryIsElementDisplay(string webpath, IWebDriver driver, string urlForSearchElement)
{
    bool result = false;
    driver.Navigate().GoToUrl(urlForSearchElement);

    try
    {
        result = driver.FindElement(By.XPath(webpath)).Displayed;
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    return result;
}

И второй вариант. В нем я использовал явное ожидание. Кстати насколько правильно использовал еще вопрос.

public bool SecondTryIsElementDisplay(string webpath, IWebDriver driver, string urlForSearchElement)
{
    bool result = false;
    driver.Navigate().GoToUrl(urlForSearchElement);

    try
    {
        WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
        IWebElement webElement = wait.Until<IWebElement>((d) => d.FindElement(By.XPath(webpath)));
        result = webElement.Displayed;
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }

    return result;
}

Ответы (0 шт):