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

WebDriver(Ruby):如何避免在一个查询中出现父元素和子元素(嵌套)的“不允许复合类名”错误

申辉
2023-03-14

对于子元素/嵌套元素,例如:

<span class="target-identification">
   <h2 class="light collapsed card-title">
</span>

如何在一个查询中定位子元素/嵌套元素而不触发

Selenium::WebDriver::Error::InvalidSelectorError: invalid selector: Compound class names not permitted

错误?

共有1个答案

井轶
2023-03-14

如果希望将子元素作为目标,这是一种方法

driver.find_element(css:'.parent-class-name .desired-child-class-name')

例如,如果这是HTML

<span class="target-identification">
   <h2 class="light collapsed card-title">
</span>

那么命令应该是

driver.find_element(css:'.target-identification .card-title')

或者,一个两步选项,在外部/父元素内部搜索如下:

parent_element  = driver.find_element(class: 'target-identification')
desired_element = parent_element.find_element(class: 'card-title')
 类似资料:
  • 问题内容: 我正在尝试使用Selenium(版本2.28.0)在子元素中搜索元素,但是selenium des似乎并不将其搜索限制在子元素中。我做错了吗,还是有一种方法可以使用element.find搜索子元素? 例如,我使用以下代码创建了一个简单的测试网页: 我的python(2.6版)代码如下所示: 如果我运行: 它从第二部分返回html。因此,selenium的搜索范围并不限于element

  • 我正在尝试搜索带有Selenium(版本2.28.0)的子元素中的一个元素,但是Selenium des似乎没有将其搜索限制在子元素中。是我这样做错了,还是有办法使用Element.find搜索子元素? 对于一个示例,我使用以下代码创建了一个简单的测试网页: 我的python(2.6版)代码如下所示: 如果我跑: 它返回来自第二部分的html。所以硒并不局限于元素2。 我希望能够找到Element

  • 我有一个下拉列表,它的检查如下所示: 我想检查所有元素,看看其中一个是否包含文本“其他”例如... 所以我用斯卡拉写,我这样做了: 显然这不是真的,你认为我应该怎么做?谢谢

  • 我正在为SeleniumWebDriver测试框架使用PageObject模式 在我的pageObject类中,我有多个使用驱动程序的方法。findElement查找同一页面上存在的相同webelement 例如: 我的问题是: 1.如何避免在相同的WebElement变量上多次使用driver.findElement。我想要一种方法,一旦我找到网络,我将在任何其他方法中使用变量,而不使用driv

  • 我不能得到子元素。 我可以用appium inspector看到childNameTV元素下的childNameLabel元素 例如,我尝试查找第一个子元素的文本;

  • 问题内容: 避免嵌套查询有多重要。 我一直学会避免像瘟疫一样躲避它们。但是对我来说,它们是最自然的事情。在设计查询时,我首先写的是嵌套查询。然后,我将其转换为联接,有时需要花费很多时间才能正确。而且很少会带来很大的性能提升(有时确实会提高) 他们真的那么糟糕吗?有没有一种方法可以使用没有临时表和文件排序的嵌套查询 问题答案: 这确实取决于我遇到的情况,我可以通过使用子查询来改进一些查询。 我知道的