当前位置: 首页 > 知识库问答 >
问题:

如何打开相邻标签中的第二个链接?[复制]

鲜于致远
2023-03-14

我一直在尝试许多功能来打开我最近打开的选项卡中的链接,但它不起作用。

具有注释的最小可重复示例,说明每行之后会发生什么(这是使用Selenium webdriver,Java):

driver.get("https://twitter.com") //opens twitter in tab 1(intended)

((JavascriptExecutor)driver).executeScript("window.open('https://google.com')"); //opens new tab (tab 2) then opens google.com(intended)
((JavascriptExecutor)driver).executeScript("window.location.replace('https://facebook.com')"); //opens facebook.com in tab 1 (unintended)

我希望Facebook在选项卡2中打开。

共有1个答案

章锦
2023-03-14

一旦打开<代码>https://twitter.com作为基本url,然后打开https://google.com,然后打开urlhttps://facebook.com在同一个adjascent选项卡中,您必须为numberOfWindowsToBe(2)诱导WebDriverWait,并且可以使用以下解决方案:

>

public class A_demo 
{
    public static void main(String[] args) throws Exception 
    {
        System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("start-maximized");
        options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
        options.setExperimentalOption("useAutomationExtension", false);
        WebDriver driver = new ChromeDriver(options);
        driver.get("https://twitter.com");
        String parent_window = driver.getWindowHandle();
        ((JavascriptExecutor) driver).executeScript("window.open('https://google.com');");
        new WebDriverWait(driver,5).until(ExpectedConditions.numberOfWindowsToBe(2));
        Set<String> allWindows = driver.getWindowHandles();
        for(String child_window:allWindows)
            if(!parent_window.equalsIgnoreCase(child_window))
                driver.switchTo().window(child_window);
        driver.get("https://facebook.com");
        driver.quit();
    }
}
 类似资料:
  • 问题内容: 我正在处理HTML项目,但是我不知道如何在没有JavaScript的情况下在新标签页中打开链接。 我已经知道可以在同一选项卡中打开链接。有什么想法可以使其在新的环境中打开吗? 问题答案: 将链接的“目标”属性设置为: (注意:我之前建议这样做,而不是因为如果使用它,它将打开一个新选项卡,如果再次单击该链接,则会使用相同的选项卡。但是,这仅是因为正如GolezTrol所指出的那样,它指向

  • 我正在做一个HTML项目,我无法找到如何在没有JavaScript的情况下打开新选项卡中的链接。 我已经知道在同一个选项卡中打开链接。有什么想法如何让它在一个新的开放?

  • 问题内容: 我正在尝试使用$ state.go函数实现“在新标签页中打开链接”功能。如果有这样的东西,那就太棒了: 有没有办法使用AngularJS做到这一点? 问题答案: 更新:好的,我只是使用以下代码解决了它:

  • 问题内容: 我有以下使用Vaadin编写的代码。当用户单击按钮时,代码将打开页面。 我的问题是我有什么办法指定要在新标签页中打开页面吗? 谢谢。 问题答案: 该窗口的名字是很重要的位置。要注意的是,你还可以有一个浏览器 将 可以在新窗口中打开资源来代替。 该方法还有另一个签名,即 可能符合要求。HTH。 参考:Page(Vaadin 7.2.1 API) 。

  • 我在stackoverflow上找到了这段代码,它基本上只是Baner的代码。我的问题是,当我按下横幅时,如何在新标签中打开链接? 代码:

  • Selenium 2:打开新选项卡中的链接并关闭选项卡 但是它打开了一个窗口而不是一个标签,我无法控制延迟。我用的是硒3。使用带有JAVA的Selenium WebDriver,我试图自动化一个功能,我必须打开一个新的选项卡,在那里执行一些操作,然后回到以前的选项卡(父选项卡)。用firefox做这件事最好的方法是什么?