当xpath =没有这样的元素时停止循环

时间:2019-01-31 17:49:36

标签: python selenium for-loop while-loop

我试图在不显示xpath时停止while循环。但是,代码以NoSuchElementException消息代替。这是我的代码,

 n=1
    while n<100:


        n+=1
        time.sleep(10)

#       

        Data=driver.find_element_by_xpath('.//tbody//tr//td//span//a[text() != ""]').is_displayed()

        if Data == True:

           ...

       if Data == False: 
           break 

但是我得到:

  

“ NoSuchElementException:消息:没有这样的元素:无法找到   元件:   {“方法”:“ xpath”,“选择器”:“ .// tbody // tr // td // span // a [text()!=   “”]“}”

这正是我想停止循环的时间...当元素不可定位时。

1 个答案:

答案 0 :(得分:5)

使用try块并从selenium导入异常。

from selenium.common.exceptions import NoSuchElementException

...

while n<100:

   ...

   try:
        Data=driver.find_element_by_xpath('.//tbody//tr//td//span//a[text() != ""]').is_displayed()
   except NoSuchElementException:
        break

   ... rest of code ...