Java 当我使用selenium webdriver时,不会发生切换

Java 当我使用selenium webdriver时,不会发生切换,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,考虑我的情况: 有三个网页让我们命名为A,B,C 首先,我在java中使用selenium启动web页面“A” 网页“A”中存在链接。当我点击该链接时,它会移动到链接“B” 我正在做一些基本的操作,然后我需要关闭那个窗口 这样我的网页“C”将被打开,我必须切换到它并进行一些操作 我已经完成了直到关闭网页“B”。这样网页“C”就打开了。 但我没能转换到它 为了检查代码,我尝试切换到网页“A”。正在切换到网页“A” 但不切换到网页“C” 请尽快提出解决方案 ((JavaScriptExecutor)

考虑我的情况:

有三个网页让我们命名为A,B,C

首先,我在java中使用selenium启动web页面“A”

网页“A”中存在链接。当我点击该链接时,它会移动到链接“B”

我正在做一些基本的操作,然后我需要关闭那个窗口

这样我的网页“C”将被打开,我必须切换到它并进行一些操作

我已经完成了直到关闭网页“B”。这样网页“C”就打开了。 但我没能转换到它

为了检查代码,我尝试切换到网页“A”。正在切换到网页“A” 但不切换到网页“C”

请尽快提出解决方案

((JavaScriptExecutor)驱动程序)。executeScript(“window.close();”

Set winHandleBefore=driver.getWindowHandles();
For(字符串标题:winHandleBefore){
Driver.switchto()窗口(标题);
if(driver.gettitle().contains(winHandleBefore)){
driver.manage().maximize();
} }


这是我使用的代码

为什么要使用javascript关闭窗口


如果我不得不从您给出的非常有限的代码示例中进行猜测,我会说这就是您出错的地方。用driver.quit()或driver.close()以外的任何东西关闭浏览器窗口都可能导致不稳定。

可能是您在代码中做了错误的事情。你也能分享一下吗?我正在寻找SeleniumJava的解决方案。我有两种方法关闭窗口:1)使用javaScriptExecutor;2)使用driver.close();我认为当我关闭窗口时,windowhandle不可用。((JavaScriptExecutor)driver);字符串winHandleBefore=driver.getWindowHandle();对于(字符串winHandle:driver.getWindowHandles()){driver.switchTo().window(winHandle);}(不知道代码和站点)如果您尝试(字符串winHandle:driver.getWindowHandles()){if(!winHandle.equals(winHandleBefore){driver.switchTo().window(winHandle);}?可能有一个切换,很快,因为您迭代了所有句柄,包括当前句柄。请使用代码编辑原始帖子,不要添加注释。我们还尝试了driver.close()但是结果是一样的,切换没有发生。但是driver.quit将关闭selenium,因此我们没有使用在不关闭驱动程序的情况下关闭浏览器是一个糟糕的想法。我想不出哪种情况下,只要调用driver.quit()然后重新创建驱动程序,就无法实现更高的稳定性。
Set<String> winHandleBefore =        driver.getWindowHandles();
For(string title:winHandleBefore){
 Driver.switchto().window(title);
               if(driver.gettitle().contains( winHandleBefore)){
 driver.manage().maximize();