2017-08-15 58 views
5

Próbuję zlokalizować elementu przezSprawdź, czy istnieje element Pythona selenu

element=driver.find_element_by_partial_link_text("text") 

w Pythona selenu i element nie zawsze istnieje. Czy istnieje szybki wiersz, aby sprawdzić, czy istnieje i uzyskać NULL lub FALSE zamiast komunikatu o błędzie, gdy nie istnieje?

+0

Co dokładnie masz na myśli przez "szybkie sprawdzenie do sprawdzenia"? Selenium nie obsługuje wyrażenia 'statement'. Musisz napisać wiersz/blok kodu. – DebanjanB

+0

'driver.find_element_by_partial_link_text (" text ")' jest wystarczająco szybkim sposobem sprawdzenia, czy element istnieje ... Czy możesz bardziej precyzyjnie określić, co ma robić twój kod? – Andersson

+0

Daje komunikat o błędzie, gdy element nie istnieje. Czy jest możliwe uzyskanie NULL lub FALSE, gdy nie istnieje? –

Odpowiedz

7

można zaimplementować try/except blok jak poniżej, aby sprawdzić, czy pierwiastek obecny czy nie:

from selenium.common.exceptions import NoSuchElementException 

try: 
    element=driver.find_element_by_partial_link_text("text") 
except NoSuchElementException: 
    print("No element found") 

lub sprawdzić to samo z jednym z find_elements_...() metod. Powinno zwrócić ci pustą listę lub listę elementów dopasowanych przez przekazany selektor, ale bez wyjątku, w przypadku gdy żadne elementy nie zostały znalezione:

elements=driver.find_elements_by_partial_link_text("text") 
if not elements: 
    print("No element found") 
else: 
    element = elements[0]