【发布时间】:2017-02-18 10:49:12
【问题描述】:
我正在使用 RSelenium 和 PhantomJS 从站点中提取数据。
我正在尝试更改用户代理和视口大小。我设法调整了用户代理,但似乎无法调整视口大小。
library(RSelenium)
pJS <- phantom()
eCap <- list(phantomjs.page.settings.userAgent
= "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20120101 Firefox/29.0",
phantomjs.page.viewportsize = "width:1280, height:1024")
remDr <- remoteDriver(browserName = "phantomjs", extraCapabilities = eCap)
remDr$open()
remDr$navigate("http://www.whoishostingthis.com/tools/user-agent/")
remDr$findElement("id", "user-agent")$getElementText()[1]
remDr$close()
通过下面的代码,您可以看到浏览器窗口是 400 x 300。
我检查了 PhantomJS 文档并验证了 phantomjs.page.viewportsize 存在。
有什么办法可以调整视口大小吗?
【问题讨论】:
-
您可以使用 phantomExecute 方法
remDr$phantomExecute("var page = this; page.viewportSize = {width: 1280,height: 1024};")访问 PhantomJS API。据我所知,这仅在您像在这种情况下那样直接驱动 PhantomJS 时才有效。 -
感谢您的评论 - 这是传递 JS 的有用技巧,尽管我认为 @Floo 答案是我正在寻找的答案。