Я использую селен с Python для автоматизации браузера.На этой конкретной веб-странице мне нужно выбрать категории для загруженного видео.Показано, что в категориях есть флажки, которые нужно нажимать, но в действительности они не являются флажками.При щелчке их мышью класс элемента изменяется.
До -
<span class='foo', id='bar'>
После -
<span class='foo.active', id='bar'>
Я могу найти элемент, используя find_element_by_class_name
и find_element_by_id
Проблема не в том, чтобы найти элемент, а в том, чтобы щелкнуть по ним.
- Я попытался
.click()
метод, который не работает, очевидно, - Я попытался
ActionChains
, который выдал ошибку, что
rect не определено.
- Я пробовал
execute_script
метод, который не выдает никакой ошибки, но и ничего не меняет.
driver.execute_script("arguments[0].setAttribute('class','foo.active')", element)
Есть ли другой методПРОВЕРИТЬ этот флажок?
Обновление : Я понял, что элемент не отображается, поскольку он выдает ошибку
Сообщение: Элемент не может быть прокручен
Кроме того, element.text
возвращает пустую строку.
Когда я вижу веб-страницу в браузере, ничто не блокирует представление.
ЕеЭто код:
<li id='categoryID1' class='categoryBtn list5'>
<span class="categoryCheckbox"></span>
<span class="categoryLabel">Funny</span>
<div class="reset"></div>
</li>
Я пытался: driver.find_element_by_xpath("//span[contains(text(),'Funny')]")
Выдает эту ошибку:
selenium.common.exceptions.ElementNotInteractableException: Сообщение:Элемент не может быть прокручен до вида
Обновление 2 : Я также понял, что использование метода contains(text())
возвращает элемент, который не отображается.С другой стороны, когда я скопировал XPath из браузера, а затем использовал его, он возвращает элемент, по которому можно щелкнуть.