2016-12-28 11 views
1

を変更するドロップダウンボックスからRseleniumとRvestは私がでウェブサイトのnumberfireからいくつかのNBAの日付をこすりするために探していますワットFanduel to Draftkings。最初の遭遇する問題は、Webページがそのプルダウンメニューの変更に伴って変化しないということです。私はこれを実装するためにセレンをインストールし、正常に動作しています。しかし、次の問題は、このサイトのこのプルダウンメニューのID(およびすべてのプルダウンメニューのID)がリフレッシュごとに変わることです。これは、ページに行くときに適切なメニューボックスにロックすることができないので、 "NoSuchElement"があると言うと、Rにエラーが発生しています。Webscrape/idは

これを解決する方法として、RSeleniumまたは他のパッケージがありますか?ここで

はRで私のコードです:

require(RSelenium) 
remDr <- remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445, browserName = "chrome") 

remDr$open() 
remDr$navigate("https://www.numberfire.com/nba/daily-fantasy/daily-basketball-projections") 

iframe <- remDr$findElement(using='id', value="select2-dy8e-container") 
remDr$switchToFrame(iframe) 


option <- remDr$findElement(using = 'xpath', "//*/option[@value = 'DraftKings']") 
option$clickElement() 
option 

答えて

1

更新非静的のIdの上での検索の多くを実行した後、私はこの思い付いた、それが働いた:

remDr <- remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445, browserName = "chrome") 
remDr$open() 
remDr$navigate("https://www.numberfire.com/nba/daily-fantasy/daily-basketball-projections") 
webElem <- remDr$findElement('xpath', '//*[(@class = "dropdown-custom dfs-option select2-hidden-accessible")]/option[@value = "4"]') 
webElem$clickElement()