Как открыть модальное окно, если это список в Selenium - PullRequest
0 голосов
/ 16 апреля 2020

У меня проблема с открытием модального окна с помощью 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'

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

1 Ответ

1 голос
/ 16 апреля 2020

find_elements_by_class_name('open-details') вернется в качестве списка, а не webelement. Измените его на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...