【发布时间】:2021-08-29 16:13:06
【问题描述】:
您好,由于某种原因,此代码有效。我不知道为什么:
some = 0
n = 5
while some == 0:
for title in itertools.islice(driver.find_elements_by_css_selector("a[class='link-title']"), n):
print(title.text)
some += 1
如果我删除 while 循环并只运行 for 循环,我没有输出。
我的目标是收集网页中出现的前五个标题,因此是 itertools。最初,我尝试使用 while 循环来执行此操作,但它只是为我提供了所有标题。这就是我遇到这种看似有效的奇怪解决方案的原因。
当我尝试单独使用 for 循环运行它时,没有 while 循环,它没有给我任何输出。我没有得到我想要的标题列表。
但我不喜欢它。我不知道它为什么会起作用
【问题讨论】:
-
我很困惑。哪个代码不产生输出?你说这是你删除
while循环的那个。 -
while 循环在这里不起作用。当然,您正在做其他事情。
-
@Mohammad: (或者如果
find_elements_by_css_selector()返回空,while循环将是一个无限循环) -
@quamrana 将我的问题编辑为仅包含一个代码 sn-p 以减少混乱。由于下面接受的答案,我确实找到了原因:)
标签: python css python-3.x selenium