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

通过Selenium WebDriver在浏览器的同一个窗口会话中打开一个新标签?

汪才英
2023-03-14

如何通过Selenium WebDRiver命令在浏览器的同一窗口会话中打开新选项卡?

共有3个答案

柳经纶
2023-03-14

使用java脚本,我们可以在同一窗口中轻松打开新选项卡。

public String openNewTab(){
       String parentHandle = driverObj.getWindowHandle();
        ((JavascriptExecutor)driverObj).executeScript("window.open()");
        String currentHandle ="";
                // below driver is your webdriver object
        Set<String> win  = driver.getWindowHandles();   

        Iterator<String> it =  win.iterator();
        if(win.size() > 1){
            while(it.hasNext()){
                String handle = it.next();
                if (!handle.equalsIgnoreCase(parentHandle)){
                    driver.switchTo().window(handle);
                    currentHandle = handle;
                }
            }
        }
        else{
            System.out.println("Unable to switch");
        }
        return currentHandle;
    }
祁远
2023-03-14

是的,你可以做到这一点,请参见下面我的示例代码:

   //OPEN SPECIFIC URL IN BROWSER
    driver.get("http://www.toolsqa.com/automation-practice-form/");

   //MAXIMIZE BROWSER WINDWO
    driver.manage().window().maximize();


   //OPEN LINKED URL IN NEW TAB IN SAME BROWSER 
   String link1 = Keys.chord(Keys.CONTROL,Keys.ENTER); 
   driver.findElement(By.linkText("Partial Link Test")).sendKeys(link1);

上面的代码将在新选项卡中打开链接1。您可以运行上面的代码来查看效果。上面是公共链接包括测试表格。

但是正如@alecxe所说,没有办法在选项卡之间切换。所以最好打开新的浏览器窗口。

鱼渝
2023-03-14

可以在同一浏览器窗口中打开新选项卡,请参阅 Firefox 的解决方案:

  • 如何使用带有Java的Selenium WebDRiver打开新选项卡?
  • 在硒中控制火狐标签

问题是——一旦你打开了一个标签,没有内置的简单方法在标签之间切换。Selenium没有为此提供API。

打开一个新的浏览器窗口,而不是标签。

 类似资料:
  • 问题内容: 如何通过Selenium WebDriver命令在浏览器的同一窗口会话中打开新选项卡? 问题答案: 可以在同一浏览器窗口中打开新标签,请参阅Firefox解决方案: [如何使用带有Java的Selenium WebDriver打开新选项卡?]http://codingdict.com/questions/60473 代替选项卡,打开一个新的浏览器窗口。

  • 问题内容: 我的Web应用程序的用户可能打开了多个浏览器窗口并指向同一页面。我希望页面中某些内容的状态(通过ajax加载)在回发中得以保留。我既可以存储在Cookie中,也可以存储在服务器上。无论哪种方式,我都无法想到如何区分每个窗口。 例如,假设用户Bob在ListOfSomething页面上打开了两个浏览器窗口。每个列表都有一个 LoadedPageNumber 属性,我需要保留该属性。否则,

  • 我不知道为什么我为下面的示例打开了2个火狐浏览器。有人能告诉我下面的代码有什么问题吗?我是cucumber新手,我正在尝试使用页面对象模型开发cucumberpoc。 特征文件: 步骤定义文件: 步骤定义文件的实际实现:(首页.java) BasePage.java CustomerDetails.java 打开2个火狐浏览器:首先它打开一个空白浏览器。后来它打开另一个浏览器,并在此浏览器中打开应

  • 问题内容: 我可以使用Java和JavaScript使用Selenium WebDriver打开一个新窗口。我正在使用Firefox。代码如下: 如何使用WebDriver(Selenium 2)在同一浏览器中打开新标签页? 问题答案: 瓦西姆 您可以使用以上行在同一浏览器中打开新标签页(在Firefox中运行)

  • 我不清楚为什么我在以下示例中打开了3个chrome浏览器。我有一个@Before(cucumber版本)注释,只需在方案运行之前设置一个chrome webdriver实例。据我所知,它应该打开一个浏览器,运行场景(步骤定义),然后使用@Aftercucumber钩关闭。在第三个也是最后一个窗口实际执行步骤之前,打开2个窗口: 步骤定义: 当我单步执行Intellij中的代码时,将调用以下方法:

  • 问题内容: 我们有一个基于JSF 2.0(MyFaces)构建并在Weblogic应用服务器上运行的应用程序。我们面临有关http Session的问题。 问题: 假设我已经在两个不同的IE窗口中打开了该应用程序,并在第一个窗口中提供了一些搜索输入。在第二个窗口的会话中共享在第一个窗口中接收到的搜索结果数据。 注: 。Bean的作用域为,范围为。共享变量没有问题。 知道为什么会这样吗,以及防止这种