Я пытаюсь выбрать значение из раскрывающегося списка, в котором указано количество сообщений, отображаемых на веб-сайте.
<form method="get" class="forumForm">
<label for="dispItems">Show items:</label>
<select id="dispItems" class="dispItems">
<option selected="selected">15</option>
<option>30</option>
<option>60</option>
<option>90</option>
<option>120</option>
<option>150</option>
</select>
</form>
Я хочу изменить это, чтобы последний параметр былвыбран.Посредством других ответов я попытался найти следующее решение:
from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_id("dispItems"))
# None of these two options work.
select.select_by_index(4) # Option 1.
select.select_by_visible_text("150") # Option 2.
И вариант 1, и вариант 2 возвращают следующее сообщение об ошибке:
WebDriverException: Message:
Если я попытаюсь:
select.select_by_visible_text("random")
Я получаю следующее сообщение об ошибке:
NoSuchElementException: Message: Could not locate element with visible text: random
Редактировать: Решение, предложенное KunduK:
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
element=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH ,'//select[@id="dispItems"][@class="dispItems"]')))
time.sleep(1)
select=Select(element)
time.sleep(1)
select.select_by_visible_text('150')