Проверьте, существует ли h1 или h2 на странице - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть этот код:


driver = webdriver.Chrome()
driver.implicitly_wait(60)
driver.get(link)

driver.add_cookie({'name' : 'access_token', 'value' : token})
driver.refresh()

time.sleep(5)
driver.find_element_by_name('next').click()
time.sleep(5)


Как я могу проверить, существует ли элемент или тег на странице?Я попробовал это так:


falha = driver.find_element_by_tag_name('h1')
sucesso = driver.find_element_by_tag_name('h2')

if falha.text == "Por segurança":
    print ("Retorno: " + element.text + "\nToken: " + token)

if sucesso.text == "Pronto":
    print("Retorno: " + element.text + "\nToken: " + token)

driver.close()

Но мой код просто так, что если один из элементов не существует.

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Для этого можно использовать метод driver.find_elements_by_tag_name(), который вернет вам список соответствующих элементов тега.

Затем вы можете определить, присутствует он или нет, используя его размер.Попробуйте следующий код:

elementsh1 = driver.find_elements_by_tag_name('h1')
elementsh2 = driver.find_elements_by_tag_name('h2')

if len(elementsh1) > 0 :
    print("=> h1 is present...")
    print(elementsh1[0].text)
else:
    print("=> h1 tags are not there...")

if len(elementsh2) > 0 :
    print("=> h2 is present...")
    print(elementsh2[0].text)
else:
    print("=> h2 tags are not there...")

Надеюсь, это поможет ...

0 голосов
/ 13 февраля 2019

Если тег 'h1' существует, запустите коды, и, если тег 'h2' существует, запустите, кроме кодов

try:
    element = driver.find_elements_by_tag_name('h1')
    print ("Retorno: " + element.text + "\nToken: " + token)

except:
    element = driver.find_element_by_tag_name('h2')
    print("Retorno: " + element.text + "\nToken: " + token)
finally:
    driver.close()
0 голосов
/ 13 февраля 2019

Согласно документации , методы locate выдают исключение, если указанный элемент не найден.

Если ни один элемент не имеет соответствующего атрибута имени, будет сгенерировано исключение NoSuchElementException.

Поэтому, если существование элемента не гарантировано, вам придется заключить его в блок try, чтобы предотвратить завершение работы вашего скрипта.

try:
    falha = driver.find_element_by_tag_name('h1')
except:
    falha = None

if falha is not None and falha.text == "Por segurança":
    print ("Retorno: " + element.text + "\nToken: " + token)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...