d84*_*nj4 2 selenium r window-handles web-scraping rselenium
我一整天都在使用 RSelenium,但仍然在这里和那里遇到障碍。我当前的问题是使用WebElemReports$clickElement()单击链接并打开一个新窗口的代码。我试图在“about:config”中调整 Firefox 设置,这样它就不会打开一个新窗口。它在正常使用中不会打开一个窗口,但是使用 RSelenium 时,它仍然会打开一个新窗口。我也研究过这种方法,但无法遵循其工作原理:
我的下一个思考过程是将 switchToWindow() 函数与 getWindowHandles() 一起使用。我写的代码如下:
remDr$closeWindow()
windHand <- remDr$getWindowHandles()
remDr$switchToWindow(windHand)
Run Code Online (Sandbox Code Playgroud)
我的想法是我将关闭当前窗口,以便只有一个句柄可以引用并将该句柄传递给 switchToWindow 函数。我找不到 R 的很多 switchToWindow 文档。使用上面的代码时收到以下错误:
错误:摘要:未知错误详细信息:处理命令时发生未知的服务器端错误。类:org.openqa.selenium.WebDriverException
对此的任何帮助将不胜感激 - 我试图尽可能多地研究这个问题,所以这不会像我上一篇文章那样被标记为重复的问题。非常感谢。
实际上你不能关闭主窗口,你可以切换到子窗口,如下所示:-
# 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]])
Run Code Online (Sandbox Code Playgroud)