Как открыть новую вкладку в том же сеансе окна браузера с помощью команды Selenium WebDriver?
Открытие новой вкладки в том же сеансе окна браузера через Selenium WebDriver?
Ответы (5)
Возможно открытие новой вкладки в том же окне браузера, см. решения для Firefox:
- Как открыть новую вкладку с помощью Selenium WebDriver с Java? а>
- Управление вкладками firefox в селене
Проблема в том, что после того, как вы открыли вкладку, нет встроенного простого способа переключения между вкладками. Selenium просто не предоставляет API для этого.
Вместо вкладки откройте новое окно браузера.
Да, вы можете это сделать. См. Ниже мой пример кода для этого:
//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, нет возможности переключаться между вкладками. Так что лучше откройте новое окно браузера.
Боюсь, но есть способ переключаться между вкладками . У нас есть успешные ответы на эту проблему.
Пожалуйста, найдите ссылку ниже.
переключение вкладок с помощью Selenium WebDriver с Java
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
Используя 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;
}