我正在寻找其他语言中do while
循环的Python逻辑等价物。我有迭代的页面结果。结果结构:
1, 2, 3, 4 , ... NEXT
每个元素都有一个链接。只有最后一页没有NEXT
元素,因此我将NEXT
标识为迭代时需要检查的条件。
我已使用以下方法识别出来:
next_link = driver.find_element_by_id('anch_25')
所以我有一个函数my_function()
,我希望在next_link
存在的每个页面上运行,然后使用click()
函数单击next_link。如果元素不存在,则表示只有1个页面结果或者我在结果的最后一页。无论哪种方式,我仍然希望my_function
能够在任何一种情况下运行。
所以我有:
def my_function():
print "Another result page"
###This is where I am trying to loop through the results pages
next_link = driver.find_element_by_id('anch_25')
if next_link:
my_function()
next_link.click()
else:
my_function()
不幸的是,这只适用于第一页而不会遍历其他页面。
我也试过这个,
while next_link:
my_function()
next_link.click()
my_function()
它似乎也不起作用。有什么建议吗?
答案 0 :(得分:1)
在调用您的函数后检查下一个链接。然后使用break
突破循环,而不是使用next_link
作为while
条件。
while True:
my_function()
next_link = driver.find_element_by_id('anch_25')
if not next_link:
break
next_link.click()
答案 1 :(得分:1)
默认情况下,您可以使用while
循环设置为True
的变量,并根据您的条件将其更改为True/False
。例如:
is_continue = True
while is_continue:
... # Your Logic
if my_condition:
is_continue = True
else:
is_continue = False
PS:我给你的示例示例,剩下的部分给你实现。因此,您可以通过自己的知识实现它,并了解事情是如何运作的。