为什么Google搜索页源结果会使Webdriver崩溃?

时间:2019-08-09 12:08:24

标签: selenium google-chrome webdriver rselenium

使用Linux为什么Google搜索结果页面源中的任何内容都会导致我的浏览器崩溃?

当我使用findElements从任何搜索中读取google href结果时,它都可以正常工作,但是当我使用remDr $ getPageSource()[[1]](改为使用rvest进行解析)时,它会永远崩溃我的WEBDRIVER。

以下示例可重现,可使用Linux Google计算引擎VM来获取错误:

再现网络驱动程序:

library(RSelenium)
library(rvest)
library(httr)

randsleep <- function(low=1,high=2){
  Sys.sleep(sample(seq(low,high,by=0.001),1))
}

system("sudo kill -9 $(lsof -t -i:4444)")
system("sudo kill -9 $(lsof -t -i:4445)")
eCaps <- list(chromeOptions = list(
  args = c('--headless', '--disable-gpu', '--window-size=1280,800')
))
randsleep()
rD <- rsDriver(port=4445L, extraCapabilities = eCaps, browser=c("chrome"), chromever = "76.0.3809.68")
randsleep()
remDr <- rD$client

再现搜索:

searchstring <- "dogs"
remDr$navigate("https://www.google.com")
randsleep(4,6)
googsearch <- remDr$findElement(using='xpath','//input[@name="q"]')
randsleep(2,3)
googsearch$sendKeysToElement(list(searchstring))
randsleep(2,3)
googsearch$submitElement()
randsleep(10,15)

作品精细度:

googres <- remDr$findElements(using='xpath','//div[@class="r"]/a')
reslinks <- sapply(seq_along(googres),FUN=function(x){googres[[x]]$getElementAttribute("href")})

崩溃WEBDRIVER:

ps1 <- remDr$getPageSource()
#ERROR:
Undefined error in httr call. httr output: Failed to connect to localhost port 4445: Connection refused

0 个答案:

没有答案