当找不到页面上的文本时,如何在Python / selenium中打破循环?

时间:2013-06-11 00:06:38

标签: python selenium

我正在尝试创建一个循环,直到在页面上找不到部分链接文本“Ticket Request”。我查看了选项,但我不知道如何实际检查是否找到了链接。

这是我正在创建的循环的基本概念。我暂时有一个高限制的for循环,直到找到更好的解决方案。

for i in range(100):
    driver.get('https://www.webpage.com')
    wait = ui.WebDriverWait(driver, 30)
    wait.until(lambda driver: driver.find_element_by_partial_link_text('Ticket Request'))
    driver.find_element_by_partial_link_text('Requesting a Restricted Lead').click()

2 个答案:

答案 0 :(得分:1)

你如何使用try / catch

try:
  wait.until(lambda driver: driver.find_element_by_partial_link_text('Ticket Request'))
except: 
  print "Did not find the element, I can now do what I want"
  #break #if you really want to break out of something

如果驱动程序找不到链接“Ticket Request”,等待30秒后,它将打印并退出循环

答案 1 :(得分:0)

如果要打破循环,请使用break关键字。

所以,例如:

for i in range(100):
   ... # do stuff
   if some_condition:
       break