Открытие новой вкладки в том же сеансе окна браузера через Selenium WebDriver?

Как открыть новую вкладку в том же сеансе окна браузера с помощью команды Selenium WebDriver?


person Bharadwaj Pendyala    schedule 27.01.2015    source источник
comment
Есть ли какая-то конкретная причина, по которой вы хотите открыть новую вкладку в том же окне браузера? Потому что я боюсь, что вы не сможете выполнять с ним какие-либо дальнейшие действия, поскольку selenium не может переключаться между вкладками. Он может переключаться только между окнами..   -  person Subh    schedule 27.01.2015
comment
посмотрите здесь: stackoverflow.com/questions/17547473/   -  person AcMuD    schedule 19.04.2018


Ответы (5)


Возможно открытие новой вкладки в том же окне браузера, см. решения для Firefox:

Проблема в том, что после того, как вы открыли вкладку, нет встроенного простого способа переключения между вкладками. Selenium просто не предоставляет API для этого.

Вместо вкладки откройте новое окно браузера.

person alecxe    schedule 27.01.2015

Да, вы можете это сделать. См. Ниже мой пример кода для этого:

   //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, нет возможности переключаться между вкладками. Так что лучше откройте новое окно браузера.

person Helping Hands    schedule 27.01.2015

Боюсь, но есть способ переключаться между вкладками . У нас есть успешные ответы на эту проблему.

Пожалуйста, найдите ссылку ниже.

переключение вкладок с помощью Selenium WebDriver с Java

person A user    schedule 29.07.2015

Selenium может переключаться между вкладками.

Питон:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
element = driver.find_element_by_css_selector("html") # Gets the full page element, any element works for this
key_code = Keys.CONTROL # Use Keys.COMMAND for Mac
driver.execute_script("window.open();") # Executes Javascript to open a new tab
driver.switch_to.window(1) # Switches to the new tab (at index 1, first tab is index 0)
driver.switch_to.window(0) # Switches to the first tab
person Brydenr    schedule 12.06.2017

Используя 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;
    }
person Ankit Gupta    schedule 09.08.2017