javascript selenium Python:如何在弹出窗口中向下滚动

6qftjkof  于 2023-01-11  发布在  Java
关注(0)|答案(2)|浏览(190)

我正在做一个Linkedin网页抓取项目。我试图得到感兴趣的公司列表(注意我没有使用API)。这是一个动态网站,所以我需要向下滚动,同时抓取公司的名称。我知道如何在主窗口中做到这一点,但由于兴趣是一个弹出窗口this解决方案滚动不起作用。我的代码到目前为止是:

from selenium.webdriver.common.keys import Keys
bar = driver.find_element_by_xpath('//ul[@class="entity-list row"]')
bar.send_keys(Keys.END)

既然不管用,我又试了一下:

bar = driver.find_element_by_xpath('//ul[@class="entity-list row"]')
driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', bar)

问题是,我不是在弹出窗口上操作,而是在主窗口中操作,所以它没有达到预期的效果。

pgvzfuti

pgvzfuti1#

您可以尝试在弹出窗口中查找元素(可以聚焦的元素),例如一些锚:

element_inside_popup = driver.find_element_by_xpath('//div[@class="entity-list-wrapper ember-view"]//a')

然后使用以下代码向下滚动弹出窗口:

from selenium.webdriver.common.keys import Keys

element_inside_popup.send_keys(Keys.END)
isr3a4wc

isr3a4wc2#

首先我尝试使用这个脚本,但它不起作用:

scrollable_popup = driver.find_element(By.XPATH, '/html/body/div[6]/div/div/div/div[2]')
for i in range(5):
    scrollable_popup.send_keys(Keys.END)
    time.sleep(2)

然后我用了这个脚本,它很适合我:

scrollable_popup = driver.find_element(By.XPATH, '/html/body/div[6]/div/div/div/div[2]')
for i in range(5):
    driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight", scrollable_popup)
    time.sleep(2)

相关问题