#python #selenium #selenium-webdriver
#python #селен #selenium-webdriver
Вопрос:
У меня есть таблица, в которой каждая строка имеет столбец с флажком. Если я сниму флажок, он скроет строку. Я хочу подождать, пока эта строка не исчезнет.
То, что я нашел, предназначено для случаев, когда у меня есть конкретный локатор EC.invisibility_of_element_located
, но в этом случае, поскольку это строки, каждая строка имеет один и тот же класс, и нет никакого смысла указывать идентификатор для каждой строки.
Я хотел бы избежать чего-то вроде time.sleep(2)
Спасибо
Ответ №1:
Вы можете подождать, пока количество списков не уменьшится на 1:
from selenium.webdriver.support.ui import WebDriverWait
_list = driver.find_elements_by_xpath('//tr')
list_count = len(_list)
WebDriverWait(driver, 10).until(lambda driver: len(driver.find_elements_by_xpath('//tr')) == list_count - 1)
Это должно сработать, если строка физически удалена из DOM. В случае, если он становится скрытым, используйте что-то вроде driver.find_elements_by_xpath('//tr[not(@hidden)]')
поиска видимых строк