我整天都在与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
对此的任何帮助都会非常感激 - 我尽可能地研究这个问题,所以这不会像我上一篇文章那样被标记为重复的问题。非常感谢。
答案 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]])