Я пытаюсь выполнить автоматизацию на веб-странице с помощью веб-драйвера Chrome в Селена Python.
В одном случае у меня есть выпадающий список с 80 элементами списка, каждый элемент списка предшествует флажок ввода. Мне нужно нажать на 2 флажка из данного списка, совпадающего с текстом элемента списка.
Невозможно установить флажки с элементом списка в раскрывающемся списке из-за TimeoutException.
Я получаю исключение времени ожидания при попытке щелкнуть элемент списка с флажками в раскрывающемся списке. Примечание:
1. Также наблюдалось, что индикатор загрузки появляется после щелчка по раскрывающемуся списку с помощью moveToElement.
2.В раскрывающемся списке имеется около 80 элементов списка и полоса прокрутки. 3.Этот раскрывающийся список присутствует сразу же для другого раскрывающегося списка, указанного в приведенной ниже ссылке.
Я следовал: Невозможно выбрать элемент списка в неупорядоченном списке с помощью python selenium
Начал использовать ожидание веб-драйвера с ожидаемой концепцией условий.
HTML :
HTML code:
=========
<div class="ms-drop bottom" style="display: block;">
<ul style="max-height: 400px;">
<li class="ms-select-all">
<label><input type="checkbox" data-name="selectAlls_osVer">
[Select all]
</label>
</li>
<li class="" style="false">
<label class=""><input type="checkbox" data-name="selectItems_osVer" value="KK">
<span>
apq40
</span>
</label>
</li>
<li class="" style="false">
<label class=""><input type="checkbox" data-name="selectItems_osVer" value="KK_MR1">
<span>
sdm845
</span>
</label>
</li>
<li class="" style="false">
<label class=""><input type="checkbox" data-name="selectItems_osVer" value="KK_MR2">
<span>
msm8996
</span>
</label>
</li>
<li class="" style="false">
<label class=""><input type="checkbox" data-name="selectItems_osVer" value="KK_MR2">
<span>
msm8996e
</span>
</label>
</li>
.....
..... so on (approximately 80 elements are there)
</ul>
</div>
**** Пробовал с приведенным ниже кодом, но получал исключение тайм-аута: ****
Язык: Python Driver: SeleniumБраузер: Chrome Webdriver: Chromewebdriver
Я получаю исключение тайм-аута при попытке щелкнуть элемент списка с флажками в раскрывающемся списке.
chipset = [ 'sdm845', 'msm8996e' ]
for i in range(len(chipset)):
chipset_name = "{}".format(chipset[i])
WebDriverWait(driver,20).until(EC.element_to_be_clickable
((By.XPATH,"//div[@class='ms-drop bottom']//ul//li[.//span
[normalize-space(text())='"+ chipset_name + "']]//input"))).click()
Примечание: 1. Также наблюдается индикатор загрузкипоявляется при нажатии на раскрывающийся список с помощью moveToElement.
2. В раскрывающемся списке содержится около 80 элементов списка и полоса прокрутки. Этот выпадающий список присутствует сразу для другого выпадающего списка.
Мой элемент видим, и это 2-й и 4-й элементы списка, которые должны быть выбраны в раскрывающемся списке, и он видим. Хотя исключение тайм-аута происходит. Это происходит из-за того, что появляется значок загрузки?
Также я хотел бы знать, как действовать, если желаемый элемент списка, который нужно выбрать, невидим, и он появляется в конце списка ичтобы сделать его видимым, мне нужно выполнить прокрутку вниз по списку.
Ожидается: необходимо выполнить операцию щелчка по флажкам ввода требуемого элемента списка, совпадающим с каждой строкой в данном списке.
Факт: исключение истечения времени ожидания Появляется при попытке найти элемент списка в раскрывающемся меню, содержащем полосу прокрутки.