Остановите цикл, пока xpath = нет такого элемента - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь остановить цикл while, когда xpath не отображается.Однако код останавливается с сообщением 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: Сообщение: нет такого элемента: Невозможно найти элемент: {" method ":" xpath ","селектор": ".// tbody // tr // td // span // a [text ()! =" "]"} "

И это именно то, когда я хочуостановить цикл ... когда элемент не может быть найден.

1 Ответ

0 голосов
/ 31 января 2019

Используйте блок 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 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...