如何使用 python Selenium webdriver 滚动加载在网页中的 PDF?

Posted

技术标签:

【中文标题】如何使用 python Selenium webdriver 滚动加载在网页中的 PDF?【英文标题】:How scroll a PDF loaded in a web page using python Selenium webdriver? 【发布时间】:2020-01-15 21:05:05 【问题描述】:

我正在使用 python Selenium webdriver 在线打开一个 pdf,我想滚动它。我应该使用哪个功能?

我已经尝试使用函数 driver.execute_script("window.scrollTo(0, 1000)") [如此堆栈溢出问题中所建议:How can I scroll a web page using selenium webdriver in python?]

这是我的代码:

driver.get("http://www.pdf995.com/samples/")

element = driver.find_element_by_xpath("//a[@href='pdf.pdf']")
element.click() 

driver.execute_script("window.scrollTo(0, 1000)") 

我希望向下滚动(就像通常那样,例如当我录制 driver.get("https://www.google.it/search?client=opera&q=google&sourceid=opera&ie=UTF-8&oe=UTF-8") 但实际上页面保持固定时。

有人给我建议吗?

【问题讨论】:

【参考方案1】:

首先你可以尝试使用 CSS 选择器而不是 XPath,只是为了更容易通过 JS 定位,对于这种情况,两者非常相似

PDF_CSS_LOCATOR = "a[href='pdf.pdf']"
driver.get("http://www.pdf995.com/samples/")
element = driver.find_element_by_css_selector(PDF_CSS_LOCATOR)
element.click()

然后,你应该使用它与它交互

driver.execute_script(f"document.querySelector(PDF_CSS_LOCATOR).scrollTo(0, 1000)")

【讨论】:

以上是关于如何使用 python Selenium webdriver 滚动加载在网页中的 PDF?的主要内容,如果未能解决你的问题,请参考以下文章

selenium 常用api

如何让 Selenium firefox 驱动只截取浏览过的页面

Python3.x:Selenium中的webdriver进行页面元素定位

Python爬虫之爬取页面内容图片以及用selenium爬取

Selenium 验证 div 是不是有滚动条

Chrome如何设定webdriver=undefined以避免Selenium检测?