所以我在主页上有一个问题列表,如下所示:
<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个问题。
答案 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 */
}