Как да отворя нов раздел в същата сесия на прозореца на браузъра чрез командата 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 може да превключва между раздели.
Python:
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;
}