当前位置: 首页 > 知识库问答 >
问题:

Selenium XPath:祖先不包含

微生昌勋
2023-03-14

在顶级“foo”的范围内找到具有类“bar”的div,其祖先没有类“foo”。例如,

<div class="foo">
    <div class="foo">
         <div><div>
         <div class="bar"> </div>
         </div></div>
    </div>

    <div class="bar"> </div>
</div>
WebElement root = driver.findElement(By.xpath("//div[@class='foo']"));
root.findElements(By.xpath(".//div[not(contains(@class, 'foo'))]//div[contains(@class, 'bar')]"));
root.findElements(By.cssSelector(":not(.foo) .bar"));

共有1个答案

陆安国
2023-03-14

请尝试此XPath-1.0表达式:

//div[contains(@class, 'bar') and not(ancestor::*[@class='foo'])]

它只返回一个项:所需的

 类似资料:
  • 主要内容:向上遍历 DOM 树,jQuery parent() 方法,实例,jQuery parents() 方法,实例,实例,jQuery parentsUntil() 方法,实例祖先是父、祖父或曾祖父等等。 通过 jQuery,您能够向上遍历 DOM 树,以查找元素的祖先。 向上遍历 DOM 树 这些 jQuery 方法很有用,它们用于向上遍历 DOM 树: parent() parents() parentsUntil() jQuery parent() 方法 parent() 方法返回被

  • 问题内容: 我正在编写一个JAX-RS库(不是应用程序)。 我有: 和测试类: 我正在使用jersey测试框架v2.17进行测试 我发现只有会被调用,而祖先中定义的那些方法不会被调用。注意,在类中声明的field()已正确注入。 这正常吗?我该怎么办? 结论 我对嵌入式Glassfish进行了测试,发现正如Antonin Stefanutti所指出的那样,这些回调方法按预期顺序被调用。 问题答案:

  • 我正在编写一些Selenium测试,我需要能够找到我已经找到的的祖先。 这是我正在尝试的,但没有任何结果 下面的图像显示了我选择的div,突出显示为深蓝色,并且显示了我想用箭头指向它的div。  

  • 我的问题是树中有大量的节点和许多查询。是否有一种算法,它进行预处理,使查询能够在恒定的时间内得到答复。 我研究了使用RMQ的LCA,但我不能使用该技术,因为我不能对树中的这么多节点使用数组。 如果知道它是满二叉树,节点之间的关系如上所示,那么有人能给我一个高效的实现来快速回答许多查询。 但是当有很多查询时,这种算法非常耗时,因为在最坏的情况下,我可能必须遍历30的高度(树的最大高度)才能到达根(最

  • 问题内容: 我知道这是在黑暗中拍摄的,但是有没有办法仅使用CSS,CSS2,没有jquery,没有javascript来选择和设置元素祖先的样式?我已经遍历了选择器,但是发布了它,以防万一我错过了一些东西或者有一个聪明的解决方法。 例如,假设我有一个嵌套在div中的类名称为“ test”的表。是否有某种: 问题答案: CSS2或CSS3中没有父选择器之类的东西。实际上,可能永远不会存在,因为一旦开

  • 调用时出现问题 System. Windows. Data错误:4:找不到引用“RelativeSource FindAncestor, AncestorType='PhotoBrowser. List. ViewModel. ListViewModel', AncestorLine='1”的绑定源。BindingExpress:路径=测试;数据项=空;目标元素是“EventTo命令”(HashC