一尘不染

如何检查c#selenium驱动程序中是否存在Element

selenium

因此,我有使用Firefoxseleniumwebdriers的c#winform。

基本上我需要它来检查元素是否存在以及是否不单击其他元素。如果有视频,观看后会变成W_VIEWED

这是我到目前为止所得到的

driver.FindElement(By.XPath("//div[@class='video']/a")).Click();
else {
          driver.FindElement(By.XPath("//div[@class='W_VIEWED']/a")).Click();
     }

错误3仅赋值,调用,递增,递减,等待和新对象表达式可以用作语句242

C#selenium的新种类。谢谢你的帮助。


阅读 364

收藏
2020-06-26

共1个答案

一尘不染

您可以检查元素出口或不使用

bool isElementDisplayed = driver.findElement(By.xpath("element")).isDisplayed()

请记住,findElement如果找不到元素,则会引发异常,因此您需要正确处理它。

在我的一个应用程序中,我通过检查单独函数中的元素来处理异常,

    private bool IsElementPresent(By by)
    {
        try
        {
            driver.FindElement(by);
            return true;
        }
        catch (NoSuchElementException)
        {
            return false;
        }
    }

通话功能

            if (IsElementPresent(By.Id("element name")))
            {
                //do if exists
            }
            else
            {
                //do if does not exists
            }
2020-06-26