python - Selenium python:无法向下滚动覆盖窗口
问题描述
在 Quora 上,我想滚动到单击查看赞成票按钮时得到的窗口底部,以获取所有赞成票的姓名,向下滚动标准浏览器窗口的代码似乎不适用于覆盖窗口,有什么建议吗?这是我的向下滚动功能代码和单击“查看支持者”按钮的代码:
def scrolldown(browser):
src_updated = browser.page_source
src = ""
while src != src_updated:
src = src_updated
time.sleep(5)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(5)
src_updated = browser.page_source
#if (DEBUG): print ("window maximized...")
return browser
browser.get('https://www.quora.com/What-is-it-like-to-regret-having-children')
for p in browser.find_elements_by_class_name('AnswerVoterListModalLink'):
time.sleep(5)
p.click()
time.sleep(5)
browser=scrolldown(browser)
time.sleep(5)
c=0
for div in upvoter_name :#browser.find_elements_by_class_name('author_info'):
list_of_upvoters.append(div.find_element_by_class_name('user').text)
c+=1
print("number of upvoters for this answer is :" + str(c))
解决方案
我认为您可以使用类似于此答案的内容向下滚动到最后一个元素。根据答案,您可以使用以下内容向下滚动到最后一个元素:
from selenium.webdriver.common.action_chains import ActionChains
element = driver.find_element_by_xpath("//div[@class='pagedlist_item'][last()]")
actions = ActionChains(driver)
actions.move_to_element(element).perform()
推荐阅读
- javascript - 可能影响 Edge 86、Dojo、ArcGIS Javascript 4.xx 的错误
- javascript - 数组 - 检查数组元素之一中是否存在值的最佳方法是什么(React / JS)
- python - 当我点击提交按钮时,如何让 matplotlib 饼图显示在 GUI 中?
- sparql - 使用文字或字符串作为 SPARQL 谓词
- python - 拆分包含字符的字符串
- sql - 如何减少 RShiny 应用程序中的 SQL 查询复杂性和长度?
- c# - 测试无效的枚举值使用方法 Enum.IsDefined(typeof())
- python - 如何使用 Matplotlib 或 Seaborn 在 Python 中手动选择数据在热图上的显示位置?
- reactjs - GET API 在浏览器中显示 KeyError,但在 Postman 中工作
- ios - 由于我的视图层次结构,显然没有调用 viewWillAppear