C# Selenium Web 驱动程序和 CSS : Start point

标签 c# selenium selenium-webdriver css-selectors webdriver

我有下一个标签结构:

<body>
   <parent>
       <nested/>
   </parent>
</body>

我做了以下事情:

IWebDriver _driver;

var parent = _driver.FindElement(By.Css("parent"));
var nested = parent.FindElement(By.Css("parent nested"));

注意,我只需要通过这种方式查找嵌套元素:首先找到父标签,然后使用父标签作为起点来查找嵌套元素。 但是当我使用逻辑上错误的定位器(“父级嵌套”,因为“父级父级嵌套”一起是错误的定位器)时,parent.FindElement 返回(!)我正确的IWebElement,就像我从DOM 模型的顶部。

有趣的是,当我这样做时

var nested = parent.FindElement(By.Css("parent"));

它抛出元素未找到异常。

我认为我理解错误或只是不知道某些内容。它是如何工作的?如何避免“父父嵌套”问题?

最佳答案

我认为你在这里使用了错误的方式,这就是你收到错误的原因

var nested = parent.FindElement(By.Css("parent"));

你正在做的 -

"first find parent tag, then I use parent as a start point to find parent tag itself"

这是错误的。可以有不同的方法来获得这个 -

  1. 将父标签作为起点并查找子标签 -

var child= driver.FindElement(By.Css("parent")).FindElement(By.Css("nested"));

  • 直接查找子标签 -
  • var child= driver.FindElement(By.Css("父级嵌套"));

    关于C# Selenium Web 驱动程序和 CSS : Start point,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41370411/

    相关文章:

    c# - 如何创建保证无效的完整路径

    c# - 从根开始构建 Assimp 骨骼层次结构

    c# - Math.Net 数值中的多元回归

    python - 具有特殊字符的 MYSQL::Connector/Python UPDATE 语句不起作用

    java - Selenium - NoSuchElementException 错误检查

    c# - 成功扫描后禁用符号扫描器 'beep'?

    selenium - 带有以下兄弟的 xpath

    java - 在 Selenium Java 中获取 ElementNotInteractableException 错误

    java - 如何定位/查找每次刷新时 ID 和 xpath 发生变化的元素 - Selenium WebDriver Java

    selenium - Selenium 将 DOM 存储在哪里(如果有的话)?