Селен Не могу нажать кнопку ajax - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть кнопка, подобная этой

<button data-control-name="more_comments" id="ember1181" class="comments-comments-list__load-more-comments-button artdeco-button artdeco-button--muted artdeco-button--1 artdeco-button--tertiary ember-view" style="" xpath="1"><!---->
<span class="artdeco-button__text" style="">
    Load more comments
</span></button>

и она загружена ajax.

мой код последний код

browser.implicitly_wait(50)
browser.execute_script("document.getElementsByClassName('comments-comments-list__load-more-comments-button artdeco-button artdeco-button--muted artdeco-button--1 artdeco-button--tertiary ember-view')[1].click();")

я получаю Эта ошибка духовки и более

selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read property 'scrollIntoView' of undefined

Я пытался

implicit_wait

WebElementWait

selection by css selector

by xpath

, но все еще без улучшений

Заранее спасибо

1 Ответ

0 голосов
/ 15 апреля 2020

Таким образом, идентификаторы являются динамическими c, поэтому вы можете использовать приведенное ниже решение для обработки 1-го раздела комментариев со своей веб-страницы:

 wait = WebDriverWait(driver, 10)
 wait.until(EC.element_to_be_clickable((By.XPATH, "/(//button[@data-control-name='comment'])[1]"))).click()
 wait.until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Load more comments']"))).click()

Примечание: добавьте ниже импорта в ваше решение

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