使用最新版本的RSelenium在Chrome中启用Adblocker扩展程序

时间:2017-02-09 21:30:04

标签: r google-chrome selenium adblock rselenium

我的问题与this previous one有关,因为我同样喜欢在使用最新版本的RSelenium(1.7.1)驱动Chrome时启用AdBlocker。现在,如果不推荐使用startServer,如何在RSelenium中设置Chrome配置文件?

我正在使用的代码如下,但我不认为最后一行是正确的。至少,当使用RSelenium打开Chrome时,AdBlocker似乎无法正常工作。想法?

rD <- rsDriver(verbose = F)
remDr <- rD$client
cprof <- getChromeProfile("/Users/<username>/Library/Application Support/Google/Chrome", "Default")
remDr$extraCapabilities <- cprof

1 个答案:

答案 0 :(得分:4)

您可以将@SpringBootTest参数传递给extraCapabilities函数:

rsDriver

更新

您还可以通过base 64编码相关的crx文件来添加扩展名。您可以从例如http://chrome-extension-downloader.com/获取chrome crx文件(当前用于adguard adblocker的ID为:bgnkhhnnamicmpeenaelnjfhikgbkllg),一旦您拥有了需要对其进行base64编码的crx文件。我使用了https://cran.r-project.org/web/packages/base64enc/

cprof <- getChromeProfile("/Users/<username>/Library/Application Support/Google/Chrome", "Default")
rD <- rsDriver(verbose = F, extraCapabilities = cprof)
remDr <- rD$client

如果您希望使用library(RSelenium) cprof <- list(chromeOptions = list(extensions = list(base64enc::base64encode("C:/Users/john/Downloads/Adguard-AdBlocker_v2.5.11.crx")) )) rD <- rsDriver(verbose = F, extraCapabilities = cprof) remDr <- rD$client 进行编码:

jsonlite

在MAC OSx sierra上:

我通过在chrome&#34; seltestprof&#34;上添加一个人来创建个人资料。配置文件在文件夹中创建,可以通过在使用配置文件时浏览到chrome://版本来找到。您可以在此处查看配置文件路径。我是

tmpfile <- "C:/Users/john/Downloads/Adguard-AdBlocker_v2.5.11.crx"
jsonlite::base64_enc(readBin(tmpfile, "raw", file.info(tmpfile)$size))

我运行以下代码来使用配置文件:

/private/var/folders/c2/d97mz0250bg08rr4g2znxk7m0000gq/T/.org.chromium.Chromium.mS5SA1/Profile 1

要使用基本编码的crx,我使用以下代码:     库(RSelenium)

library(RSelenium)

cprof <- getChromeProfile("/private/var/folders/c2/d97mz0250bg08rr4g2znxk7m0000gq/T/.org.chromium.Chromium.mS5SA1/", "Profile 1")
rD <- rsDriver(verbose = F, extraCapabilities = cprof)
remDr <- rD$client
remDr$navigate("http://ads-blocker.com/testing/")
remDr$screenshot(display = TRUE)

enter image description here