У меня проблема с открытием модального окна с помощью Selenium. На этой странице https://buggy-testingcup.pgs-soft.com/task_1 есть ссылка Treść zadania . Когда я нажимаю на это, я вижу модальное окно с объяснением задачи.

<nav class="navbar navbar-fixed-top navbar-inverse">
        <div class="container helpers">
            <div class="col-sm-10 col-md-10">
                <span class="open-details">Treść zadania</span> | <span id="main-reset">Resetuj dane</span>
            </div>
            <div class="col-sm-2 col-md-2">

            </div>
        </div>
    </nav>

Как видите, есть класс open-detail , поэтому я пробовал с find_elements_by_class_name('open-details'), также с xpath и текстовой ссылкой, но все время получаю

AttributeError: 'NoneType' object has no attribute 'click' когда я использую с [0] или же

AttributeError: 'list' object has no attribute 'click'

Может кто-нибудь объяснить мне, как открыть это модальное окно? Это не обязательно для моего теста, но мне просто любопытно.

0
margaret 16 Апр 2020 в 15:17

1 ответ

Лучший ответ

find_elements_by_class_name('open-details') вернет список, а не веб-элемент. Измените его на find_element_by_class_name('open-details')

Я бы предложил использовать селектор css.

driver.find_element_by_css_selector(".open-details").click()

Вы вызываете WebDriverWait (), ждете element_to_be_clickable () и щелкаете.

WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,".open-details"))).click()

Вам нужно импортировать библиотеки.

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
1
KunduK 16 Апр 2020 в 12:48