Прокрутка на конкретном элементе DIV в Python Selenium - PullRequest
1 голос
/ 11 октября 2019

Я пытаюсь сделать простую автоматизацию Python Selenium, где скрипт щелкает ссылку, которая открывает диалоговое окно вверху страницы (профиль Instagram).

В указанном диалоговом окне будет отображаться списокфолловеров, но, к сожалению, в UL, содержащем список, будут отображаться только первые 12 фолловеров (или LI). Он работает от AJAX, чтобы «загружать больше» подписчиков.

В любом случае, чтобы имитировать загрузку большего числа подписчиков, я попробовал этот код:

driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/ul').send_keys(Keys.END)

или

driver.find_element_by_tag_name('body').send_keys(Keys.END)

к сожалению, это не работает. Мне было интересно, если есть правильный способ сделать это (прокрутка вниз, фокусируется на активный div или любой элемент страницы)?

Изображение ниже, чтобы показать структуру HTML этой страницы.

enter image description here

Благодарим Вас за помощь, большое спасибо!

Ответы [ 2 ]

1 голос
/ 11 октября 2019

Используйте это

liElement = driver.find_element_by_xpath("//div[@role='dialog']//ul//li[text()='required_li_element_visible_text']")
driver.execute_script("arguments[0].scrollIntoView(true);", liElement);
1 голос
/ 11 октября 2019

Можете ли вы попробовать что-то подобное? Это позволит перейти к элементу div, который вы упомянули.

Код Python

element = driver.find_element_by_xpath("xpath_of_div_element")
driver.execute_script("arguments[0].scrollIntoView(true);", element);

Образец Java:

WebElement element = driver.findElement(By.id("id_of_div_element"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...