How to open a new tab using Selenium WebDriver in Java?
The code below will open the link in a new tab.
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,Keys.RETURN);
driver.findElement(By.linkText("urlLink")).sendKeys(selectLinkOpeninNewTab);
The code below will open an empty new tab.
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,"t");
driver.findElement(By.linkText("urlLink")).sendKeys(selectLinkOpeninNewTab);
How to open a link in new tab (chrome) using Selenium WebDriver?
I checked with below code and it works fine for me. I found answer from here.
driver = new ChromeDriver();
driver.manage().window().maximize();
String baseUrl = "http://www.google.co.uk/";
driver.get(baseUrl);
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(1)); //switches to new tab
driver.get("https://www.facebook.com");
driver.switchTo().window(tabs.get(0)); // switch back to main screen
driver.get("https://www.news.google.com");
How to open a new tab using Selenium WebDriver in C#?
Selenium 4 solution:
driver.SwitchTo().NewWindow(WindowType.Tab);
Note that it will open a new tab in the same window and will switch also to the newly opened tab.
to open a new window, you should use:
driver.SwitchTo().NewWindow(WindowType.Window);
Selenium 3 solution:
((IJavaScriptExecutor)driver).ExecuteScript("window.open()");
List<string> tabs = new List<string> (driver.WindowHandles);
driver.SwitchTo().Window(tabs[1]);
how to open new tab in selenium webdriver using Java or how to press ctrl +T in selenium using action class using selenium webdriver
I tried with javascript and robot class. Hope this will help you..
JavaScript
driver.get("http://www.google.com/");
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
//Open new tab
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.open()");
//Switch to new tab
ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
driver.get("http://www.yahoo.com/");
Robot Class
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
System.out.println(driver.getTitle());
//Robot Class
Robot r = new Robot();
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_T);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_T);
//Switch to new tab
ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
driver.get("http://www.yahoo.com/");
System.out.println(driver.getTitle());
Switch tabs using Selenium WebDriver with Java
psdbComponent.clickDocumentLink();
ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs2.get(1));
driver.close();
driver.switchTo().window(tabs2.get(0));
This code perfectly worked for me. Try it out. You always need to switch your driver to new tab, before you want to do something on new tab.
How to open a new tab in Chrome and switch to that new tab in Java using Selenium
You can open new tab with javascript
public void openNewTab() {
((JavascriptExecutor)driver).executeScript("window.open('about:blank','_blank');");
}
If you want to perform operations within new tab you can use:
driver.switchTo().window();
This method accepts String as an argument. Window handle to be exact
You can get all handles like this
driver.getWindowHandles().
This will return you a Set of all handles in the current browser.
In order to switch to newly created tab, iterate through the handles and use switchTo()
method like this:
Set<String> handles = driver.getWindowHandles();
String currentWindowHandle = driver.getWindowHandle();
for (String handle : handles) {
if (!currentWindowHandle.equals(handle)) {
driver.switchTo().window(handle);
}
}
WARNING: This might be tricky if you have more than 2 tabs.
Related Topics
What Is a Nosuchbeandefinitionexception and How to Fix It
Custom Thread Pool in Java 8 Parallel Stream
What Does "Possible Lossy Conversion" Mean and How to Fix It
How to Override Equals Method in Java
Calling Remove in Foreach Loop in Java
How to Return Multiple Objects from a Java Method
How to "Decompile" Java Class Files
How to Access Java-Classes in the Default-Package
Why Are Arrays Covariant But Generics Are Invariant
Making a Robust, Resizable Swing Chess Gui
Including Dependencies in a Jar With Maven
How to Convert Number to Words in Java
How to Make an Executable Jar File
Why Do This() and Super() Have to Be the First Statement in a Constructor