当前位置: 首页 > 面试题库 >

Selenium WebDriver-使用cssSelector和第n个子元素查找元素

劳和雅
2023-03-14
问题内容
<ul>
<li class="active">
    <a href="#">
    <i class="fa fa-home"></i><br>
    <span class="title">Home</span>
    </a>
</li>

<li>
    <a href="#">
    <i class="fa fa-rss-square"></i><br>
    <span class="title">Posts</span>
    </a>
</li>

<li>
    <a href="#">
    <i class="fa fa-calendar"></i><br>
    <span class="title">Events</span>
    </a>
</li>

<li>
    <a href="#">
    <i class="fa fa-bar-chart-o"></i><br>
    <span class="title">My Activity</span>
    </a>
</li>

<li>
    <a href="#">
    <i class="fa fa-edit"></i><br>
    <span class="title">Assessments</span>
    </a>
</li>
</ul>

我想找到相应的span元素。我想使用css选择器检查span元素的顺序。因此,当我使用Selenium
IDE时,我将按照以下方式进行验证(使用第n个子概念)。

verifyText | css = .title:nth(0)| 首页
verifyText | css = .title:nth(1)| 帖子
verifyText | css = .title:nth(2)| 事件
verifyText | css = .title:nth(3)| 我的活动
verifyText | css = .title:nth(4)| 评估

但是,当我在Selenium WebDriver中执行相同的操作时,无法按照我使用Selenium IDE进行的顺序来定位元素。

以下是我在WebDriver中使用的代码,它可以正常工作。

driver.findElement(By.cssSelector(".title:nth(0)")); // to locate the "Home" element

driver.findElement(By.cssSelector(".title:nth-of-type(0)")); // to locate the "Home" element

driver.findElement(By.cssSelector(".title:nth-child(0)")); // to locate the "Home" element

谁能帮我。


问题答案:

您可以从生成CSS选择器ul一样ul > li:nth-child(1)回家。见下文:

driver.findElement(By.cssSelector("ul > li:nth-child(1)")); >> home
driver.findElement(By.cssSelector("ul > li:nth-child(2)")); >> posts
driver.findElement(By.cssSelector("ul > li:nth-child(3)")); >> events

到达范围也相同:

driver.findElement(By.cssSelector("ul > li:nth-child(1) > a > span")); >> home


 类似资料:
  • 我想找到相应的span元素。我想使用css选择器检查span元素的顺序。所以当我使用selenium IDE时,我将像下面这样验证它(使用第n个子概念)。 有人能帮帮我吗。

  • 问题内容: 是否有可能在CSS2中获得有序列表的第n个元素? (类似于CSS3) 仅供参考:我正在尝试将德语版本的Parcheesi编程为XHTML 1.1和CSS2兼容,并尝试通过使用有序列表来生成运动场,因此移动选项由数据结构预先确定。为了围绕中心定位,我想通过数字选择列表元素。 问题答案: 您可以将相邻的同级组合器与伪类一起使用,重复组合器的次数可以达到第n个孩子。 对于任何元素,均以开头,

  • 问题内容: 我只需要找到1D中最小的第n个元素。 例如: 我想获得第五个最小的元素,所以我想要的输出是。 我当前的解决方案是这样的: 但是,找到5个最小的元素然后再选择最大的元素对我来说似乎很笨拙。有更好的方法吗?我是否缺少一个可以实现目标的功能? 有些问题的标题与此相似,但我没有看到任何答案。 编辑: 我本来应该提到它,但是性能对我来说很重要。因此,虽然不错的解决方案对我来说不起作用。 结果:

  • 我正在尝试将我的selenium测试转换为使用页面对象模型(以及扩展为@FindBy)。我有几个这样的对象定义: 将父对象转换为使用FindBy很容易: 基本上,如果可能的话,我想这样做(我知道这不是真正的代码,这只是一个伪示例: 但是,有没有一种方法可以使用FindBy在父元素中定位子元素呢 。我需要这样做,因为我的目标是页面上的特定元素,这些元素可能与页面上的其他元素共享相同的名称或类名。谢谢

  • 问题内容: 我正在尝试使用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