首页 > 解决方案 > RSelenium - remDr$switchToWindow() 没有按预期工作(不切换窗口)

问题描述

我对 RSelenium 有一个奇怪的问题。这是一个可重现的示例:

#Open session:

require(RSelenium)
driver <- rsDriver(browser=c("chrome"), chromever="76.0.3809.126", port = 1220L)
remDr <- driver$client
  remDro=i0 open()
remDr$getStatus()

#Navigate to main page:

wsurl <- "https://en.wikipedia.org/wiki/U.S._state"
remDr$navigate(wsurl)

#Open child window:

webEl <- remDr$findElement("xpath","//*[@id='mw-content-text']/div/div[5]/div/ul/li[1]/a")
remDr$mouseMoveToLocation(webElement = webEl)
win.hand.m <- remDr$getCurrentWindowHandle()
webEl$sendKeysToElement(sendKeys = list("\ue008\ue007"))

#The above works as anticipated, but then I attempt to switch to the child window:

win.hands <- remDr$getWindowHandles()
win.hand.c <- win.hands[which(win.hands != win.hand.m[[1]])]
remDr$switchToWindow(win.hand.c[[1]])

#But it does not work:

remDr$getCurrentWindowHandle()[[1]] == win.hand.c[[1]]

#returns FALSE and 

remDr$getCurrentWindowHandle()[[1]] == win.hand.m[[1]]

#returns TRUE

问题似乎是该功能remDr$switchToWindow(win.hand.c[[1]]) 什么都不做。有谁知道为什么,或者是否有替代方案?

标签: rseleniumweb-scraping

解决方案


推荐阅读