RSelenium:使用窗口句柄切换Windows

时间:2016-08-11 19:03:52

标签: r selenium web-scraping rselenium window-handles

我整天都在与RSelenium合作,仍然在这里和那里打路障。我当前的问题是使用代码WebElemReports$clickElement(),点击链接并打开一个新窗口。我尝试在" about:config"中调整Firefox设置。这样它就不会打开一个新窗口。它在正常使用中没有打开窗口,但是使用RSelenium,它仍会打开一个新窗口。我也看过这种方法,但不能遵循它的工作原理:

How to clickElement() and open the link in the same tab

我的下一个思考过程是使用switchToWindow()函数和getWindowHandles()。我写的代码如下:

remDr$closeWindow()
windHand <- remDr$getWindowHandles()
remDr$switchToWindow(windHand)

我的想法是,我将关闭当前窗口,以便只有一个句柄可以引用并将该句柄传递给switchToWindow函数。我找不到很多关于R的switchToWindow文档。我使用上面的代码收到以下错误:

  

错误:摘要:UnknownError            详细信息:处理命令时发生未知的服务器端错误。            class:org.openqa.selenium.WebDriverException

对此的任何帮助都会非常感激 - 我尽可能地研究这个问题,所以这不会像我上一篇文章那样被标记为重复的问题。非常感谢。

1 个答案:

答案 0 :(得分:4)

实际上你不能关闭主窗口,你可以切换到子窗口如下: -

# get main window and store to switch back
currWindow <-  remDr$getCurrentWindowHandle()

#gel all windows 
windows <- remDr$getWindowHandles()

#loop through switching child window 
for (window in windows[[1]]) {
  if (window != currWindow[[1]]) 
    remDr$switchToWindow(window)
}

#now do your stuff with child window 

#now close your child window after doing all stuff
remDr$closeWindow()

#now switch back to main window for further stuff 
remDr$switchToWindow(currWindow[[1]])
相关问题