XPath 应该如何格式化,目前一直抛出错误

问题描述 投票:0回答:1

当说明 selenium 应该单击的元素的 XPath 时,我可以/应该说明完整路径。目前错误在这里抛出:

IWebElement gridElement = driver.FindElement(By.XPath("//div[@class='sc-80905d34-2 gGhuiq']"));

是否有人遇到过类似的问题并出现此错误,您采取了什么措施来解决该问题。

Error Message: OpenQA.Selenium.NoSuchElementException: 'no such element: Unable to locate element: {"method":"xpath","selector":"//div[@class='sc-80905d34-2 gGhuiq']"}
  (Session info: chrome=122.0.6261.112)

我尝试添加父 div,以便包含我想要定位的 div,但这不起作用。

这是我这里的方法:

static void ClickAllClickableElements(IWebDriver driver)
{
    IWebElement gridElement = driver.FindElement(By.XPath("//div[@class='sc-80905d34-2 gGhuiq']"));
    IList<IWebElement> gridCellElements = gridElement.FindElements(By.XPath(".//div['role='gridcell']"));
    
    foreach (IWebElement gridCellElement in gridCellElements)
    {
        try
        {
            gridCellElement.Click();
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error clicking grid cell element: {ex.Message}");
        }
    }
}

HTML 是从网络上的另一个网站抓取的

google-chrome selenium-webdriver selenium-chromedriver selenium-rc
1个回答
0
投票

如果您可以共享元素的 DOM,这将会有所帮助。

一般问题可以来自以下列表:

  • 这个元素位于框架内
  • 元素被隐藏
  • xpath 不正确。我建议使用唯一定位器,而不是类
  • 其他窗口中的元素
© www.soinside.com 2019 - 2024. All rights reserved.