Rによる自動データ収集 読書めも2

estis2018/05/13 (日) 12:24 に投稿

p.320にある
start_session(root = "http://localhost:4444/wd/hub/", browser = "firefox")
を実行したら、
 serverDetails$value[[1]] でエラー:  添え字が許される範囲外です 
とエラーになった。

> start_session
function (root = NULL, browser = "firefox", javascriptEnabled = TRUE, 
    takesScreenshot = TRUE, handlesAlerts = TRUE, databaseEnabled = TRUE, 
    cssSelectorsEnabled = TRUE) 
{
    server <- list(desiredCapabilities = list(browserName = browser, 
        javascriptEnabled = javascriptEnabled, takesScreenshot = takesScreenshot, 
        handlesAlerts = handlesAlerts, databaseEnabled = databaseEnabled, 
        cssSelectorsEnabled = cssSelectorsEnabled))
    newSession <- getURL(paste0(root, "session"), customrequest = "POST", 
        httpheader = c(`Content-Type` = "application/json;charset=UTF-8"), 
        postfields = toJSON(server))
    serverDetails <- fromJSON(rawToChar(getURLContent(paste0(root, 
        "sessions"), binary = TRUE)))
    sessionList <- list(time = Sys.time(), sessionURL = paste0(root, 
        "session/", serverDetails$value[[1]]$id))
    class(sessionList) <- "RSelenium"
    print("Started new session. sessionList created.")
    seleniumSession <<- sessionList
}
<bytecode: 0x7f8743ce7b68="">
<environment: namespace:rwebdriver="">
</environment:>

start_session 関数の内容は、上記の内容で、
serverDetails <- fromJSON(rawToChar(getURLContent(paste0(root, "sessions"), binary = TRUE)))
で、値がとれず

> serverDetails$value
list()

となっていることが原因。

https://stackoverflow.com/questions/45839848/selenium-unable-to-create-…
にドライバーをインストールしろとあった。

https://github.com/mozilla/geckodriver/releases
から、ドライバーをダウンロードして、
/usr/local/bin 配下に設置した。

これで、

> start_session(root = "http://localhost:4444/wd/hub/", browser = "firefox")
[1] "Started new session. sessionList created."

と、エラーはなくなった。