弹出窗口内的 Selenium Scroll div

Selenium Scroll inside of popup div

我正在使用 selenium 并尝试在 instagram 上的弹出窗口 div 内滚动。

我进入“https://www.instagram.com/kimkardashian/”之类的页面,单击关注者,然后我无法让关注者列表向下滚动。

我尝试使用悬停、click_and_hold 和其他一些技巧来 select div,但其中 none 有效。

获得此 selected 的最佳方法是什么?

这是我目前尝试的方法:

driver.find_elements_by_xpath("//*[contains(text(), 'followers')]")[0].click()
element_to_hover_over = driver.find_elements_by_xpath("//*[contains(text(), 'Follow')]")[12]
hover = ActionChains(webdriver).move_to_element(element_to_hover_over)
hover.click_and_hold()
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

您需要使用 jQuery 在 div 上执行函数。这是我想做的方法。使用 jQuery 解决它并执行脚本比使用 api.

更容易解决它
height = 2000
query = 'jQuery("div").filter((i, div) => jQuery(div).css("overflow-y") == "scroll")[0].scrollTop = %s' %height
driver.execute_script(query)

具体代码如下。您首先必须找到包含关注者姓名的新 iframe:

scr1 = driver.find_element_by_xpath('/html/body/div[2]/div/div[2]/div/div[2]')
driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight", scr1)

这将自动向下滚动页面,但您已经为它创建了一个 for 循环,直到它到达页面末尾。你可以看到我的Instagram爬虫here.