您可以通過extraCapabilities
參數傳遞給rsDriver
功能:
cprof <- getChromeProfile("/Users/<username>/Library/Application Support/Google/Chrome", "Default")
rD <- rsDriver(verbose = F, extraCapabilities = cprof)
remDr <- rD$client
UPDATE
您還可以通過底座64添加擴展編碼相關的CRX文件。一旦你有了需要對base64進行編碼的crx文件,你就可以從例如http://chrome-extension-downloader.com/(目前adguard adblocker的id是:bgnkhhnnamicmpeenaelnjfhikgbkllg)中獲得chrome crx文件。我用這個https://cran.r-project.org/web/packages/base64enc/:
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
編碼:
tmpfile <- "C:/Users/john/Downloads/Adguard-AdBlocker_v2.5.11.crx"
jsonlite::base64_enc(readBin(tmpfile, "raw", file.info(tmpfile)$size))
在Mac OSX上塞拉:
我創建一個配置文件通過鍍鉻 「seltestprof」 增加一個人。該配置文件創建在可以通過瀏覽chrome://版本找到的文件夾中,同時使用該配置文件。您可以在此處列出配置文件路徑。礦是
/private/var/folders/c2/d97mz0250bg08rr4g2znxk7m0000gq/T/.org.chromium.Chromium.mS5SA1/Profile 1
我跑的下面的代碼使用的配置文件:
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)
要使用鹼編碼CRX我用下面的代碼: 庫(RSelenium)
cprof <- list(
chromeOptions =
list(extensions =
list(base64enc::base64encode("/Users/admin/Downloads/Adguard-AdBlocker_v2.5.11.crx"))
)
)
rD <- rsDriver(verbose = F, extraCapabilities = cprof)
remDr <- rD$client
感謝您的快速回復。然而,將'extraCapabilities'傳遞給'rsDriver'似乎沒有辦法。當我手動運行Chrome時,Adblocker可以正常工作,但當我使用RSelenium遠程驅動時,Adblocker不起作用。你知道爲什麼會這樣嗎? –
@ M.Aitken這是使用自定義配置文件的正確方法。請檢查您是否正確識別了自定義配置文件夾。另外請注意,兩個版本的chrome不能使用相同的配置文件,所以如果你已經打開chrome,它將無法工作。還有第二種方法來添加我已添加的擴展。 – jdharrison
我確定配置文件夾已被正確識別。在使用R打開之前,我也一定要關閉Chrome。感謝替代解決方案,但是我仍然無法按照您的建議通過編碼crx文件(使用base64enc或jsonlite)來使用它。 。這是一個Mac與PC的東西,還是其他的事情? –