Привет всем,
У меня такая ситуация, я должен выбрать название города, после того как я выбираю страну. Проблема в том, что я должен ждать пока загрузится список городов выборной страны. Как я могу ожидать без time.sleep?
time.sleep(2)
select_country = Select(self.browser.css("#country_id"))
select_country.select_by_visible_text("Россия")
time.sleep(2)
select_city = Select(self.browser.css("#city_id"))
select_city.select_by_visible_text("Москва")
Mes
(Bolatbek)
30.Июль.2017 08:51:49
#2
xotabu4
(Oleksandr Khotemskyi)
30.Июль.2017 09:47:35
#3
Допустим ваш HTML что-то вроде такого вначале:
<select #country_id>
</select>
И тут в нем начинают подгружатся опции:
<select #country_id>
<option>Россия</option>
<option>Украина</option>
<option>Беларусь</option>
</select>
Получается вам нужно ждать элемент по его видимому тексту. К счастью есть Explicit Waits, и специальный кондишн text_to_be_present_in_element
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.text_to_be_present_in_element((By.css, 'select#country_id option'), 'Россия'))
1 лайк