Rでセレンを使用することに興味があります。さまざまなドキュメントがここWebDriver (Selenium 2) API documentationで説明されていることに注意してください。R を使用した実装に関する作業はありましたか。これにどのようにアプローチしますか。ドキュメントでは、セレンサーバーの実行について言及しており、Javascript を使用して API を照会できます。どんな助けでも大歓迎です。
質問する
1041 次
4 に答える
1
Selenium には、 JsonWireProtocolを使用してアクセスできます。
まず、コマンドラインから次の方法で Selenium サーバーを起動します。
java -jar selenium-server-standalone-2.25.0.jar
新しい Firefox ブラウザーは、次のように開くことができます。
library(RCurl)
library(RJSONIO)
library(XML)
baseURL<-"http://localhost:4444/wd/hub/"
server<-list(desiredCapabilities=list(browserName='firefox',javascriptEnabled=TRUE))
getURL(paste0(baseURL,"session"),
customrequest="POST",
httpheader=c('Content-Type'='application/json;charset=UTF-8'),
postfields=toJSON(server))
serverDetails<-fromJSON(rawToChar(getURLContent('http://localhost:4444/wd/hub/sessions',binary=TRUE)))
serverId<-serverDetails$value[[1]]$id
グーグルに移動します。
getURL(paste0(baseURL,"session/",serverId,"/url"),
customrequest="POST",
httpheader=c('Content-Type'='application/json;charset=UTF-8'),
postfields=toJSON(list(url="http://www.google.com")))
検索ボックスのIDを取得する
elementDetails<-fromJSON(rawToChar(getURLContent(paste0(baseURL,"session/",serverId,"/element"),
customrequest="POST",
httpheader=c('Content-Type'='application/json;charset=UTF-8'),
postfields=toJSON(list(using="xpath",value="//*[@id=\"gbqfq\"]")),binary=TRUE))
)
elementId<-elementDetails$value
主題を検索する
rawToChar(getURLContent(paste0(baseURL,"session/",serverId,"/element/",elementId,"/value"),
customrequest="POST",
httpheader=c('Content-Type'='application/json;charset=UTF-8'),
postfields=toJSON(list(value=list("\uE009","a","\uE009",'\b','Selenium api in R')))
,binary=TRUE))
検索 html を返す
googData<-fromJSON(rawToChar(getURLContent(paste0(baseURL,"session/",serverId,"/source"),
customrequest="GET",
httpheader=c('Content-Type'='application/json;charset=UTF-8'),
binary=TRUE
))
)
提案されたリンクを取得する
gxml<-htmlParse(googData$value)
urls<-unname(xpathSApply(gxml,"//*[@class='l']/@href"))
セッションを閉じる
getURL(paste0(baseURL,"session/",serverId),
customrequest="DELETE",
httpheader=c('Content-Type'='application/json;charset=UTF-8')
)
于 2012-09-14T17:14:33.560 に答える
0
パッケージrelenium (Selenium for R) が最近開発され、rJava パッケージを通じてセレンをインポートします。主にウェブスクレイピング用に提案されています。免責事項: 私は開発者の 1 人です。
于 2013-11-25T22:52:35.043 に答える