如何解决为帐户追踪Instagram追随者
我正在尝试使用Selenium从Instagram帐户中删除关注者。 (https://www.instagram.com/france/followers/)
我需要向下滚动一个弹出页面,但是我唯一可以向下滚动的是后一页。
这是我的代码
scr1 = driver.find_element_by_xpath('/html/body/div[4]/div/div')
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);",scr1) ## Scroll to bottom of page with using driver
我还通过使用对话框模式的JSPath在JS浏览器控制台中进行了尝试:
window.scrollTo(0,document.querySelector("body > div.RnEpo.Yx5HN > div"));
(已经看到Stack帖子相关,但答案似乎在2020年10月被弃用)
解决方法
您尝试执行的操作遇到了类似的问题。目前,我在脚本中实现的方法使用Selenium的ActionChains
类,我发现它比那里的所有Javascript(execute_script
)答案都更有帮助。
基本上,我使用ActionChains
按下“向下”箭头键,然后利用它来发挥自己的优势。我将在下面列出基本语法:
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
actions = ActionChains(browser)
actions.send_keys(Keys.DOWN).perform() #sends a general down arrow key to the page
现在,我将ActionChains
放在特定元素上,在这种情况下,它是弹出窗口。有很多方法可以专注于元素,但是我发现最简单的解决方法是在使用ActionChains
赞:
popup = driver.find_element_by_class_name('popupClass') #you don't have to use class_name
for i in range(500): #500 is amount of scrolls
popup.click() #focus the down key on the popup
actions.send_keys(Keys.DOWN).perform() # press the down key
以上方法将单击弹出窗口,然后按一次向下键,实际上是向弹出窗口发送500次“滚动”,而不是整个页面。完成后,您将想要在负责弹出窗口的元素上获取.text
属性(至少这是我在脚本中所做的事情)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。