Перейти к содержимому

H_B

Регистрация: 27 мая 2008
Offline Активность: 23 мар 2020 03:47
-----

Мои сообщения

В теме: Python selenium проверить наличие элемента на веб странице

26 апреля 2019 - 12:14

Здравствуйте, мне необходимо проверить что определенный элемент присутствует на веб-странице.

Нахожу элемент следующим образом:

Element = driver.find_element_by_id('text')

Проверку сделал следующим образом:

self.assertTrue("id = text", Element)

Но, мне сказали что это не правильно, потому что этот код ничего не проверяет: первый параметр метода это и есть проверка, а второй просто сообщение, которое выводится при падении.

После этого я нашел как проверить наличие элементов следующим методом:

from selenium.common.exceptions import NoSuchElementException
def check_exists_by_id(id):
try:
webdriver.find_element_by_id(id)
except NoSuchElementException:
return False
return True

Теперь я вообще запутался. Скажите пожалуйста, каким методом все таки нужно производить проверку наличия элемента на странице? И все таки, возможно ли это сделать через assert.True()?

Например, найти все через

my_elems = webdriver.find_elements_by_xpath(".//*[@id='text']")

if len(my_elems) == 0:

    print("Элемента нет")

Или например, подождать:

try:

    wait.until(EC.presence_of_element_located((By.ID, 'text'))) или visibility_of_element_located или element_to_be_clickable и т.д.

except TimeoutException:

    print("Элемента нет")