无法使用JavaScript在Chrome浏览器中关闭标签页

Aka*_*van 3 javascript java selenium selenium-chromedriver selenium-webdriver

我无法使用JavaScript在Chrome浏览器中关闭标签页,以下代码中的最后一行js.executeScript("window.close()");不起作用。有人可以帮忙吗?

package TestCode;

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Chrome {

    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub

        System.setProperty("webdriver.chrome.driver","C:\\Akash\\Drivers\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get("https://www.gmail.com");

        JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("window.open('https://www.facebook.com')");

        Thread.sleep(5000);

        js.executeScript("window.close()");

    }

}
Run Code Online (Sandbox Code Playgroud)

And*_*niy 5

通过调用,js.executeScript("window.close()");您试图关闭主窗口,而不是刚刚打开的主窗口。要关闭弹出窗口,您需要以某种方式定位它或将其引用保存在JavascriptExecutor上下文中。

注意,那里的全局变量应该保留

请注意,脚本完成执行后,局部变量将不可用,尽管全局变量将持续存在。

因此,您可以尝试执行以下操作:

    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("popup_window = window.open('https://www.facebook.com')");

    Thread.sleep(5000);

    js.executeScript("popup_window.close()");
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

834 次

最近记录:

6 年,4 月 前