#html #python-3.x #selenium #selenium-webdriver
#HTML #python-3.x #selenium #selenium-webdriver
Вопрос:
Я знаю, что люди здесь говорят, что это дубликат, ни один из ответов в сети мне не помог. Ниже приведен мой HTML-код
<div class="Headline"><div class="card mt15"><!-- react-empty: 350 --><div class="cardPad"><div class="widgetHead"><span class="widgetTitle">What do you want to wish </span><span class="edit icon">Edit</span></div><div class="widgetCont"><div class="prefill"><div> Good Morning</div></div></div></div></div></div>
В пользовательском интерфейсе есть значок карандаша / пера с классом «значок редактирования», который находится рядом с текстом «Заголовок», я хочу нажать на этот значок карандаша, и когда откроется всплывающее окно, мне нужно обновить его текстом «Доброе утро». Я пытаюсь достичь этого, используя selenium в python.
Я попытался найти с помощью CSS_SELECTORS и найти по class_name, но я не могу щелкнуть по нему, может кто-нибудь, пожалуйста, посоветуйте мне это.
browser.find_element_by_css_selector('.Headline > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > span:nth-child(2)').click()
Я пробовал приведенный выше код, но я получаю ошибку
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <span class="edit icon">...</span> is not clickable at point (478, 521). Other element would receive the click: <div class="ppContainer">...</div>
(Session info: chrome=84.0.4147.135)
Комментарии:
1. Как вы опробовали JavaScript для click like
driver.execute_script("arguments[0].click();", element)
2. На самом деле нет, я не знаю, как работает JS, поэтому просто набираю dind по имени класса и селекторам css
3. Вы можете использовать тот же элемент, который вы находите с помощью css-селектора
find_element_by_css_selector('.Headline > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > span:nth-child(2)')
. Просто передайте этот элемент в ранее упомянутом Java script4. Спасибо Kuldeep, в нижней части страницы было всплывающее окно с файлами cookie, поэтому я не смог нажать на кнопку «Желание», я справился с этим, и все работало нормально
Ответ №1:
Похоже, что ваш элемент отсутствует на экране окна и перекрывается каким-либо div. Попробуйте щелкнуть javascript.
pen = driver.find_element_by_xpath("//span[text()=‘Edit’]")
driver.execute_script("arguments[0].scrollIntoView();",pen)
driver.execute_script("arguments[0].click();",pen)
Выше будет выделен элемент и нажмите на него.
Комментарии:
1. Спасибо, Рахул, в нижней части страницы появилось всплывающее окно с файлами cookie, поэтому я не смог нажать на кнопку «Желание», я справился с этим, и все работало нормально