我用js函数来滚动,但没有用
window.scrollBy(0,800);
通过 Imacros
EVENT TYPE=KEYPRESS SELECTOR="HTML>BODY" KEY=34
在滚动事件之前,用于在用户之间单击以激活弹出窗口,然后使用滚动,之前它有效,但现在还不行。
有没有正确的方法可以在弹出窗口内滚动?
我认为以下命令可能会有所帮助:
EVENT TYPE=KEYPRESS SELECTOR="div.j6cq2" KEY=34
这对 2019 年的我有用...不要改变任何东西!
FList = driver.find_element_by_css_selector('div[role=\'dialog\'] ul')
numberOfFollowersInList = len(FList.find_elements_by_css_selector('li'))
FList.click()
actionChain = webdriver.ActionChains(driver)
time.sleep(random.randint(2,4))
while (numberOfFollowersInList < max):
actionChain.key_down(Keys.SPACE).key_up(Keys.SPACE).perform()
numberOfFollowersInList = len(FList.find_elements_by_css_selector('li'))
time.sleep(0.4)
print(numberOfFollowersInList)
actionChain.key_down(Keys.SPACE).key_up(Keys.SPACE).perform()
time.sleep(1)
找到关注者部分:
finding_that_follower = self.driver.find_element(By.XPATH, '//h1[text()="Followers"]')
导航到父容器:
going_three_generation_up = finding_that_follower.find_element(By.XPATH, '../../..')
此步骤是必要的,因为类名是动态生成的,因此必须遍历 DOM 以访问可滚动对话框所在的父容器
处理对话框中滚动的方法:
sleep(2) # Optional: Wait for the modal to load self.driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight", modal)
from selenium.webdriver.common.keys import Keys modal.send_keys(Keys.END)
from selenium.webdriver.common.action_chains import ActionChains actions = ActionChains(self.driver) actions.move_to_element(modal).click().send_keys(Keys.END).perform()
注意:这里,我假设选择了模态