使用CSS选择具有相同类名的多个元素

时间:2016-04-21 14:42:05

标签: html selenium css-selectors

所以我在主页上有一个问题列表,如下所示:

<div id="question-summary-36771853" class="question-summary narrow">
<div id="question-summary-36772065" class="question-summary narrow">
<div id="question-summary-36772003" class="question-summary narrow">
<div id="question-summary-36772259" class="question-summary narrow">
<div id="question-summary-36772257" class="question-summary narrow">
<div id="question-summary-36772256" class="question-summary narrow">
<div id="question-summary-36772253" class="question-summary narrow"> 

现在,每次刷新页面时,ID都会更改。我想知道如何使用CSS选择器捕获前5个问题。

2 个答案:

答案 0 :(得分:1)

您可以使用&#34; starts-with&#34;部分匹配id。或&#34;包含&#34;符号:

div[id^="question-summary-"]

或者,您可以检查班级而不是ID:

div.question-summary

至于仅限于5个第一个元素,你可以使用&#34; findElements&#34;你的selenium语言绑定方法和切片结果。 Python中的示例:

questions = driver.find_elements_by_css_selector('div[id^="question-summary-"]')
first_5_questions = questions[:5]

答案 1 :(得分:0)

如果你想要一个基于CSS的方法,你可以使用:nth-child伪选择器,只选择前5个元素。这是一个小手册,但可以用这样的CSS实现:

.question-summary:nth-child(1),
.question-summary:nth-child(2),
.question-summary:nth-child(3),
.question-summary:nth-child(4),
.question-summary:nth-child(5) {
   /* your style goes here */
}