Почему Селен не может найти элемент в модальном всплывающем окне bootbox? - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь автоматизировать веб-портал на Windows 10, используя Selenium с Python. Что касается процесса, мне нужно нажать кнопку «ОК» в модальном всплывающем окне начальной загрузки. Я использовал все возможные способы поиска элемента. Но его по-прежнему бросать не удалось найти элемент.

Я пытался найти элемент по идентификатору, xpath и т. Д. Также используется время ожидания.

<div class="popup-overlay fade bootbox-confirm in" aria-hidden="false"><div class="modal-backdrop fade in" style="height: 937px;"></div><div class="popup-outer"><div class="popup-container"><div class="popup-inner modal-body"><h4 class="yellow-txt popup-title"> Framework</h4><div class="framework-txt">Are you sure want to Complete this file ?</div></div><div class="modal-footer modelcenter"><button data-bb-handler="cancel" type="button" id="okbtn" class="btn btn-yellow">Cancel</button>&nbsp;<button data-bb-handler="confirm" type="button" id="okbtn" class="btn btn-yellow">OK</button>&nbsp;</div></div></div></div>

мой код:

qccomplete=driver.find_element_by_id("btnQcComplete").click()
time.sleep(2)

driver.switch_to_alert()

time.sleep(2)
qccomplete_ok=driver.find_element_by_id("okbtn").click()

1 Ответ

0 голосов
/ 15 мая 2019

Элемент, на который вы пытаетесь щелкнуть, генерируется динамически. Вот почему вам нужно добавить ожидание, прежде чем пытаться нажать на него. Попробуйте изменить строки с помощью щелчка следующим образом (и вы можете потерять Sleep):

qccomplete=WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "btnQcComplete")).click()

qccomplete_ok = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "okbtn")).click()  

Где вам нужно будет импортировать это вверху скрипта:

from selenium.webdriver.support import expected_conditions as EC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...