私はRSeleniumを使用しています。以下のコードはJavascriptのコマンドラインです。私はループでそれを使用し、最初の繰り返しの間にうまく動作します。しかし、私は2番目の反復の間に問題があります。ここでレベル3で再帰索引作成に失敗しました - Rselenium
は、私が持っているコードは次のとおりです。
remDr$executeScript("window.setInterval(function() {window.scrollBy(0, 300);}, 100)", args = list())
私は、受信エラーがある:要求としてここ
Error in out[[wInd]] : recursive indexing failed at level 3
は再現例です。
remDr <- remoteDriver(browserName = "chrome", nativeEvents=FALSE)
remDr$open()
url_site <-'https://www.aliexpress.com/category/1909/digital-camera.html?site=glo&pvId=351-350381&attrRel=or&isrefine=y'
remDr$navigate(url_site) # navigates to webpage
remDr$setImplicitWaitTimeout(10000000)
remDr$setTimeout(type = "page load", milliseconds = 10000000)
Sys.sleep(6)
# remDr$executeScript("document.getElementById('alibaba-login-box').getElementById('fm-login-id').value = '[email protected]';alert();", args = list())
master <- data.frame()
n <- 3 # number of pages to scrape. 80 pages in total. I just scraped 5 pages for this example.
for(i in 1:n) {
start <- i
if (i == 1) {
i<-''
}
url_site<-(sprintf('https://www.aliexpress.com/category/1909/digital-camera/%s.html?isrefine=y&site=glo&pvId=351-350381&tag=', i))
cat('display results:',(start),'-',(start+29) ,'in page', start, 'now \n',url_site,'\n')
site <- url_site
# Sys.sleep(5)
remDr$navigate(site)
remDr$setImplicitWaitTimeout(10000000)
remDr$setTimeout(type = "page load", milliseconds = 10000000)
# Sys.sleep(5)
remDr$executeScript("my_interval = window.setInterval(function() {window.scrollBy(0, 300);}, 100);return;", args = list())
# Sys.sleep(5)
cat('a')
NamewebElems <- remDr$findElements(using = 'css selector', ".detail h3 a")
remDr$executeScript("clearInterval(my_interval);", args = list())
}
私がもし気づいこの行を削除します
NamewebElems <- remDr$findElements(using = 'css selector', ".detail h3 a")
、問題はなくなり、繰り返しは正しく機能します。しかし問題は、私はこの行が必要であり、2番目のループでは、エラーポップアップとスクリプトが停止することです。
返す 'remDr $ executeScript(" window.scrollBy(0、300);}、100); return; "、args = list())' – jdharrison
@jdharrison残念なことにそれはそれを解決しませんでした。私はまだエラーが発生し、スクリプトを停止します –
あなたが持っている問題を示す再現可能な例を提供してください。 – jdharrison