【问题标题】:How to locate the element inside li tag using Selenium and C#如何使用 Selenium 和 C# 定位 li 标签内的元素
【发布时间】:2020-09-22 13:50:12
【问题描述】:

在我的应用程序中,我想声明一个位于 li 标签内的 webelement 名称。但我找不到相同的位置。

以下是 HTML 代码的图像。我无法复制粘贴代码,因此附上图像。

我试过的代码是:

IWebElement result = driver.FindElement(By.XPath("//li[@id='licredit-ResultDisplay']/a/b"));
Assert.AreEqual(result.Text, "ESTIMATE RESULTS");
Console.WriteLine("Estimate Result validated successfully");

但是我没有收到这样的元素错误。所以请建议任何合适的方法来定位元素以断言名称-ESTIMATE RESULTS。

【问题讨论】:

    标签: c# selenium xpath css-selectors webdriverwait


    【解决方案1】:

    您的代码可能会在元素存在之前尝试找到它,所以我的建议是使用等待方法。在 Python 中是这样的:

    driver = webdriver.Chrome(executable_path=r'D:PATHchromedriver.exe');
    driver.get("https://chercher.tech/practice/explicit-wait-sample-selenium-webdriver");
    wait = new WebDriverWait(driver, 30 /*timeout in seconds*/);
    wait.until(ExpectedConditions.element_to_be_clickable(By.xpath("//button[@id='btn1']"))));
    

    但我不知道如何在 C# 中使用它。

    【讨论】:

      【解决方案2】:

      也许您在 Xpath 中丢失了一些字符。 这对我有用:

      '//*[@id="licredit-ResultDisplay"]/a/b'

      因为你不是在寻找一个标签“li”,而是一个“id”的元素

      我希望它对你有用:)

      【讨论】:

        【解决方案3】:

        要摆脱OpenQA.Selenium.NoSuchElementException,您必须为所需的ElementIsVisible() 诱导WebDriverWait,您可以使用以下任一Locator Strategies

        • 使用CssSelector

          IWebElement result = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementIsVisible(By.XPath("li#licredit-ResultDisplay>a>b")));
          Assert.AreEqual(result.Text, "ESTIMATE RESULTS");
          Console.WriteLine("Estimate Result validated successfully");
          
        • 使用XPath

          IWebElement result = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementIsVisible(By.XPath("//li[@id='licredit-ResultDisplay']/a/b")));
          Assert.AreEqual(result.Text, "ESTIMATE RESULTS");
          Console.WriteLine("Estimate Result validated successfully");
          

        【讨论】:

          猜你喜欢
          • 2020-04-26
          • 2022-11-14
          • 1970-01-01
          • 2019-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-23
          相关资源
          最近更新 更多