सेलेनियम वेबड्राइवर का उपयोग करके एक नया टैब कैसे खोलें?


114

सेलेनियम वेबड्राइवर (उर्फ सेलेनियम 2) का उपयोग करके मौजूदा फ़ायरफ़ॉक्स ब्राउज़र में एक नया टैब कैसे खोलें?


आप किस प्रोग्रामिंग भाषा का उपयोग कर रहे हैं?
alecxe

2
मैं जावा का उपयोग करता हूं। मुझे एक समाधान मिला "m_Driver.findElement (By.cssSelector (" body "))। sendKeys (Keys.CONTROL +" t ");" और इसका काम पूरी तरह से ठीक है।
भक्ति शाह

क्या आप तब नए टैब को नियंत्रित करने में सक्षम हैं? नए टैब के लिए सेलेनियम का कोई समर्थन नहीं है (यह इसके बजाय नई विंडो खोलने की कोशिश करता है)। मेरे जवाब देखें stackoverflow.com/questions/14550360/… और stackoverflow.com/questions/17225911/… । वास्तव में आप क्या हासिल करने की कोशिश कर रहे हैं?
पेट्र जेनेक

मैं कुछ पाठ कॉपी करना चाहता था और फिर एक नया टैब खोलना और उसी टेक्स्ट को नए टैब में पेस्ट करना चाहता था। मैंने नए टैब को नियंत्रित करने की कोशिश नहीं की है, लेकिन मैं जो हासिल करना चाहता हूं, उसके लिए यह ठीक है।
भक्ति शाह

मैंने उस तत्व के GetText () का उपयोग करके और फिर Driver.get (पाठ) किया।
भक्ति शाह

जवाबों:


53

नीचे दिया गया कोड नए टैब में लिंक को खोलेगा।

String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,Keys.RETURN); 
driver.findElement(By.linkText("urlLink")).sendKeys(selectLinkOpeninNewTab);

नीचे दिया गया कोड खाली नया टैब खोलेगा।

String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,"t");
driver.findElement(By.linkText("urlLink")).sendKeys(selectLinkOpeninNewTab);

7
यदि आप मैक का उपयोग कर रहे हैं, तो Keys.COM के बजाय Keys.COMMAND का उपयोग करें
nanospeck

2
यह समाधान कम से अधिक इष्टतम लगता है क्योंकि यह ओएस-विशिष्ट (और शायद ब्राउज़र-विशिष्ट) शॉर्टकट पर निर्भर करता है ... कम से कम, यदि आप जेएस जैसी किसी चीज का उपयोग करते हैं, तो आप window.open()इसे कई प्लेटफार्मों / ब्राउज़रों पर काम करने की उम्मीद कर सकते हैं।
mkasberg

86

बस किसी और के लिए जो रूबी / पायथन / सी # बाइंडिंग (सेलेनियम 2.33.0) में उत्तर की तलाश में है।

ध्यान दें कि भेजने के लिए वास्तविक कुंजी आपके ओएस पर निर्भर करती है, उदाहरण के लिए, मैक का उपयोग करता है COMMAND + t, इसके बजाय CONTROL + t

माणिक

require 'selenium-webdriver'

driver = Selenium::WebDriver.for :firefox
driver.get('http://stackoverflow.com/')

body = driver.find_element(:tag_name => 'body')
body.send_keys(:control, 't')

driver.quit

अजगर

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://stackoverflow.com/")

body = driver.find_element_by_tag_name("body")
body.send_keys(Keys.CONTROL + 't')

driver.close()

सी#

using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

namespace StackOverflowTests {

    class OpenNewTab {

        static void Main(string[] args) {

            IWebDriver driver = new FirefoxDriver();
            driver.Navigate().GoToUrl("http://stackoverflow.com/");

            IWebElement body = driver.FindElement(By.TagName("body"));
            body.SendKeys(Keys.Control + 't');

            driver.Quit();
        }
    }
}

3
आप पिछले टैब पर वापस कैसे जाते हैं?
lurscher

11
WebDriver एक से अधिक टैब को संभाल सकता है - यह उन्हें अलग विंडो के रूप में मानता है। इसलिए आपको केवल driver.switchTo().window(windowName);किसी भी टैब या विंडो तक पहुंचने की आवश्यकता है । जाहिर है, आपको उन दोनों के बीच स्विच करने की अनुमति देने के लिए खिड़की के नाम के रूप में सामान्य रखने की आवश्यकता होगी।
मार्क रॉलैंड्स

1
क्या आप बता सकते हैं कि आप किसी तत्व को क्यों प्राप्त कर रहे हैं और उस तत्व को Ctrl-t भेज रहे हैं? इसका कोई मतलब नहीं है ... आप "वेब तत्व पर Ctrl + t" नहीं कर सकते हैं? सिर्फ नए एक्शन (वेबड्राइवर) क्यों न चलाएं। SendKeys (Keys.Control + "w") .Perform (); कृपया कोई समझा सकता है?
ब्रोंडाहल

1
यह मेरे लिए काम नहीं करता है। मैंने ctrl + t दबाने के कई अलग-अलग तरीकों की कोशिश की है, जिनमें से कोई भी नया टैब खोलने में सफल नहीं है।
थायने

4
@Thayne ChromeDriver बग CTRL + T को काम करने से रोकता है। आप CTRL + LMB का उपयोग वर्कअराउंड के रूप में कर सकते हैं। नमूना कोड के लिए कोड. google.com/p/chromedriver/issues/detail?id=903#c2 देखें ।
गिली

34

ऐसा क्यों नहीं करते?

driver.ExecuteScript("window.open('your url','_blank');");

अधिकांश पॉपअप ब्लॉकर्स इस प्रयास को रोकेंगे
बर्ट मेम्ब

1
शायद आप अपने ब्राउज़र सेटिंग्स के नियंत्रण में हैं, जहां परीक्षण के लिए सुरक्षित है
kernowcode

1
शायद बढ़िया काम करेगा। क्रोमेड्राइवर सभी एक्सटेंशन (यानी एडब्लॉक) को निष्क्रिय करने लगता है
जोश ओ'ब्रायन

4
Chrome 49.0.2623.75m को अपडेट करने के बाद भेजने की विधि अब मेरे लिए काम नहीं करती है, और यह विधि उस क्रोम संस्करण पर काम करती है।
स्टीवन

6
यदि आप टैब में एक रिक्त पृष्ठ खोलना चाहते हैं, तो आप कर सकते हैंdriver.ExecuteScript("window.open('about:blank','_blank');");
स्टीवन

12

JavascriptExecutor का उपयोग करके नया टैब खोलने के लिए,

((JavascriptExecutor) driver).executeScript("window.open()");
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));

सूचकांक के अनुसार टैब पर नियंत्रण होगा:

driver.switchTo().window(tabs.get(1));

मुख्य टैब पर ड्राइवर नियंत्रण:

driver.switchTo().window(tabs.get(0));

3 URL के लॉन्च के बारे में कैसे? driver.switchTo().window(tabs.get(1)); driver.get("https://www.stackoverflow.com"); Thread.sleep(2000); driver.switchTo().window(tabs.get(2)); driver.get("https://www.flipkart.com"); Thread.sleep(2000); driver.close(); driver.switchTo().window(tabs.get(1)); Thread.sleep(2000); driver.close(); driver.switchTo().window(tabs.get(0));, मैंने यह कोशिश की है, लेकिन बाउंड अपवाद से बाहर सरणी हो रही है, अगर आप किसी भी समाधान को जानते हैं तो कृपया मुझे बताएं।
cruisepandey

यह 3 टैब के लिए भी इसी तरह काम करता है। क्या मुझे पता है कि वास्तव में अपवाद कहां फेंकता है (ड्राइवर के करीब)?
इशिता शाह

नहीं, इस पंक्ति में driver.switchTo().window(tabs.get(2));, यह ठीक काम करता है ((JavascriptExecutor) driver).executeScript("window.open('https://www.stackoverflow.com','_blank');"); Thread.sleep(3000); ((JavascriptExecutor) driver).executeScript("window.open('https://www.flipkart.com','_blank');");लेकिन मुझे विंडोज़ पर स्विच करने का कोई नियंत्रण नहीं होगा।
क्रूसीपांडेय


8

आप सेलेनियम वेबड्राइवर के साथ जावा का उपयोग करके निम्नलिखित कोड का उपयोग कर सकते हैं:

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");

जावास्क्रिप्ट का उपयोग करके:

WebDriver driver = new FirefoxDriver();//FF or any other Driver
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.open()");

नया टैब खोलने के बाद उसे उस टैब पर स्विच करना होगा:

ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));

एक नया टैब खोलने के लिए मैनुअल ऑपरेशन Ctrl + T यहां लागू किया गया है
रिपन अल वसीम

@ चंद्र शेखर: क्या आप कृपया मेरे जेएस कोड को ऊपर आज़मा सकते हैं?
रिपन अल वसीम

@ शिवम: बहुत-बहुत धन्यवाद। यह सुनने के लिए अच्छा है क्योंकि कोड ने काम किया।
रिपन अल वसीम

5

FireFox ब्राउज़र के लिए यह प्रयास करें।

/*  Open new tab in browser */
public void openNewTab()
{
    driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
    ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs.get(0));
}

3

नीचे कोड नई विंडो में लिंक को खोलेगा

String selectAll = Keys.chord(Keys.SHIFT,Keys.RETURN);
driver.findElement(By.linkText("linkname")).sendKeys(selectAll);

1
टाइप ऑब्जेक्ट 'कीज़' की कोई विशेषता 'कॉर्ड' नहीं है
रॉबिनो

@Robino। मैं इसे कीज़ क्लास में देखता हूं (org.openqa.Selenium)
MrBCut

3

यहाँ लगभग सभी उत्तर पुराने हैं।

वेबड्राइवर के पास अब टैब खोलने के लिए समर्थन है:

browser = Selenium::WebDriver.for :chrome
new_tab = browser.manage.new_window

एक नया टैब खोलेगा। एक खिड़की खोलना वास्तव में गैर-मानक मामला बन गया है:

browser.manage.new_window(:window)

टैब या विंडो स्वचालित रूप से फोकस्ड नहीं होगी। इसे स्विच करने के लिए:

browser.switch_to.window new_tab

2

सेलेनियम वेबड्राइवर का उपयोग करके मौजूदा क्रोम ब्राउज़र में एक नया टैब खोलने के लिए आप इस कोड का उपयोग कर सकते हैं:

driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t");        
string newTabInstance = driver.WindowHandles[driver.WindowHandles.Count-1].ToString();
driver.SwitchTo().Window(newTabInstance);
driver.Navigate().GoToUrl(url);

हाँ, यह अच्छा काम करता है मौजूदा url के एक ही टैब में एक नया url खोलें, बहुत सारे लिंक परीक्षणों के लिए अच्छा है क्योंकि यह बहुत सारे संसाधनों का उपयोग नहीं करता है।
जॉन पीटर्स

2

मुझे क्रोम में एक नया टैब खोलने में थोड़ी देर के लिए परेशानी हुई। यहां तक ​​कि driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");मेरे लिए काम नहीं किया।

मुझे पता चला कि यह पर्याप्त नहीं है कि सेलेनियम का ड्राइवर पर ध्यान केंद्रित किया गया है, विंडोज में सामने की तरफ खिड़की भी है।

मेरा समाधान क्रोम पर एक चेतावनी लागू करना था जो खिड़की को सामने लाएगा और फिर कमांड निष्पादित करेगा। नमूना कोड:

((JavascriptExecutor)driver).executeScript("alert('Test')");
driver.switchTo().alert().accept();
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");

1

मैं जावा और फ़ायरफ़ॉक्स 44.0.2 में सेलेनियम 2.52.0 का उपयोग कर रहा हूं। दुर्भाग्य से उपरोक्त किसी भी समाधान ने मेरे लिए काम नहीं किया। समस्या यह है कि अगर मैं एक कॉल ड्राइवर हूं ।getWindowHandles () मुझे हमेशा 1 सिंगल हैंडल मिलता है। किसी तरह यह मेरे लिए समझ में आता है क्योंकि फ़ायरफ़ॉक्स एक एकल प्रक्रिया है और प्रत्येक टैब एक अलग प्रक्रिया नहीं है। लेकिन शायद मैं गलत हूं। किसी भी तरह मैं अपने समाधान लिखने की कोशिश करता हूं:

        // open a new tab
        driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");

        //url to open in a new tab
        String urlToOpen = "https://url_to_open_in_a_new_tab";

        Iterator<String> windowIterator = driver.getWindowHandles()
                .iterator();
        //I always get handlesSize == 1, regardless how many tabs I have
        int handlesSize = driver.getWindowHandles().size();

        //I had to grab the original handle
        String originalHandle = driver.getWindowHandle();

        driver.navigate().to(urlToOpen);

        Actions action = new Actions(driver);
        // close the newly opened tab
        action.keyDown(Keys.CONTROL).sendKeys("w").perform();
        // switch back to original
        action.keyDown(Keys.CONTROL).sendKeys("1").perform();

        //and switch back to the original handle. I am not sure why, but
        //it just did not work without this, like it has lost the focus
        driver.switchTo().window(originalHandle);

मैंने एक नया टैब खोलने के लिए Ctrl + t संयोजन का उपयोग किया, इसे बंद करने के लिए Ctrl + w, और मूल टैब पर वापस जाने के लिए मैंने Ctrl + 1 (पहला टैब) का उपयोग किया। मुझे पता है कि मेरा समाधान सही या अच्छा नहीं है और मैं ड्राइवर के स्विचटॉओ कॉल के साथ स्विच करना चाहूंगा, लेकिन जैसा कि मैंने लिखा था कि यह संभव नहीं था क्योंकि मेरे पास केवल एक हैंडल था। शायद यह उसी स्थिति वाले व्यक्ति के लिए उपयोगी होगा।


1
//to open new tab in existing window
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

1

क्रोम के लिए जावा के साथ सेलेनियम वेबड्राइवर का उपयोग करके एक नया टैब कैसे खोलें?

ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.navigate().to("https://google.com");     
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_T);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_T);

उपरोक्त कोड पहले एक्सटेंशन को अक्षम कर देगा और रोबोट वर्ग का उपयोग करके नया टैब खुल जाएगा।


1

कोड की यह लाइन सेलेनियम वेबड्राइवर का उपयोग करके एक नया ब्राउज़र टैब खोलेगी

((JavascriptExecutor)getDriver()).executeScript("window.open()");

जब मैं कोड से ऊपर चला गया, तो क्रोम में इसका नया टैब खुल गया। हालाँकि फ़ायरफ़ॉक्स में एक नई विंडो खोली जाती है। दोनों ही मामलों में नए खुले लोगों के लिए विंडो हैंडलर अलग है। तो मुझे लगता है कि एक टैब एक खिड़की के समान है। बेशक, गुप्त खिड़की निश्चित रूप से एक खिड़की के नियमित टैब से अलग है।
ममतामचेरला

1

*जावा

मैं उपयोग करने की सलाह देता हूं JavascriptExecutor:

  • नई रिक्त विंडो खोलें:
((JavascriptExecutor) driver).executeScript("window.open()");
  • विशिष्ट url के साथ नई विंडो खोलें:
((JavascriptExecutor) driver).executeScript("window.open('https://google.com')");

निम्नलिखित आयात:

import org.openqa.selenium.JavascriptExecutor;

0

नोडज के लिए एक ही उदाहरण:

var webdriver = require('selenium-webdriver');
...
driver = new webdriver.Builder().
                    withCapabilities(capabilities).
                    build();
...

driver.findElement(webdriver.By.tagName("body")).sendKeys(webdriver.Key.COMMAND + "t");

0

नया कैसे खोलें, लेकिन इससे भी महत्वपूर्ण बात यह है कि आप उस नए टैब में सामान कैसे करते हैं? Webdriver प्रत्येक टैब के लिए एक नया WindowHandle नहीं जोड़ता है, और केवल पहले टैब का नियंत्रण होता है। इसलिए, एक नया टैब (कंट्रोल + टैब नंबर) सेट का चयन करने के बाद। ड्राइवर पर दिखाई देने वाले टैब को चुनें।

मूल दृश्य

Dim driver = New WebDriver("Firefox", BaseUrl)

' Open new tab - send Control T
Dim body As IWebElement = driver.FindElement(By.TagName("body"))
body.SendKeys(Keys.Control + "t")

' Go to a URL in that tab
driver.GoToUrl("YourURL")


' Assuming you have m tabs open, go to tab n by sending Control + n
body.SendKeys(Keys.Control + n.ToString())

' Now set the visible tab as the drivers default content.
driver.SwitchTo().DefaultContent()

0

सेलेनियम वेबड्राइवर का उपयोग करके मौजूदा फ़ायरफ़ॉक्स ब्राउज़र में एक नया टैब खोलने के लिए

FirefoxDriver driver = new FirefoxDriver();
driver.findElement(By.tagName("body")).sendKeys(Keys.CONTROL,"t"); 

0
 Actions at=new Actions(wd);
 at.moveToElement(we);
 at.contextClick(we).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();

भविष्य में, अपने पदों को समझने में आसान बनाने के लिए कोड स्निपेट के साथ कुछ स्पष्टीकरण पाठ प्रदान करें।
टायलर जंद्रेउ

0
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());

driver.switchTo().window(tabs.get(0));

0

कई टैब खोलने और टैब के बीच स्विच करने और अंत में सभी टैब बंद करने के तरीके को समझने के लिए यह पूरा उदाहरण देखें

public class Tabs {

 WebDriver driver; 

 Robot rb;


 @BeforeTest
 public void setup() throws Exception {
  System.setProperty("webdriver.chrome.driver", "C:\\Users\\Anuja.AnujaPC\\Downloads\\chromedriver_win32\\chromedriver.exe");
  WebDriver driver=new ChromeDriver();
  driver.manage().window().maximize();
  driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
  driver.get("http://qaautomated.com");
 }

 @Test
 public void openTab() {
  //Open tab 2 using CTRL + t keys.
  driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");


 //Open URL In 2nd tab.
  driver.get("http://www.qaautomated.com/p/contact.html");

  //Call switchToTab() method to switch to 1st tab
  switchToTab(); 


  //Call switchToTab() method to switch to 2nd tab.
  switchToTab();


 } 

 public void switchToTab() {
  //Switching between tabs using CTRL + tab keys.
  driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t");
  //Switch to current selected tab's content.
  driver.switchTo().defaultContent();  
 } 



@AfterTest
 public void closeTabs() throws AWTException {
  //Used Robot class to perform ALT + SPACE + 'c' keypress event.
  rb =new Robot();
  rb.keyPress(KeyEvent.VK_ALT);
  rb.keyPress(KeyEvent.VK_SPACE);
  rb.keyPress(KeyEvent.VK_C);
 } }

यह उदाहरण इस वेब पेज द्वारा दिया गया है


0

बग के कारण https://bugs.chromium.org/p/chromedriver/issues/detail?id=1465 भले ही webdriver.switchTo वास्तव में स्विच टैब करता है, फ़ोकस पहले टैब पर छोड़ दिया जाता है। आप इसकी पुष्टि कर सकते हैं कि switchWindow के बाद एक Driver.get करें और देखें कि दूसरा टैब वास्तव में नए URL पर जाता है न कि मूल टैब पर।

अभी के लिए काम करना है जो @ yardening2 ने सुझाव दिया है। अलर्ट खोलने के लिए js का उपयोग करें और फिर इसे स्वीकार करने के लिए webdriver का उपयोग करें।


0

यह कोड मेरे लिए काम कर रहा है (सेलेनियम 3.8.1, क्रोमेड्रिवर = 2.34.522940, क्रोम = 63.0):

public void openNewTabInChrome() {

    driver.get("http://www.google.com");

    WebElement element = driver.findElement(By.linkText("Gmail"));
    Actions actionOpenLinkInNewTab = new Actions(driver);
    actionOpenLinkInNewTab.moveToElement(element)
            .keyDown(Keys.CONTROL) // MacOS: Keys.COMMAND
            .keyDown(Keys.SHIFT).click(element)
            .keyUp(Keys.CONTROL).keyUp(Keys.SHIFT).perform();


    ArrayList<String> tabs = new ArrayList(driver.getWindowHandles());
    driver.switchTo().window(tabs.get(1));
    driver.get("http://www.yahoo.com");
    //driver.close();
}

0

सवाल : जावा के साथ सेलेनियम वेबड्राइवर का उपयोग करके एक नया टैब कैसे खोलें?

उत्तर : किसी भी लिंक पर क्लिक करने के बाद नया टैब खोलें।

अगर हम नए खुले टैब को हैंडल करना चाहते हैं तो हमें .switchTo () विंडो () कमांड का उपयोग करके टैब को हैंडल करना होगा।

विशेष टैब पर स्विच करें फिर ऑपरेशन करें और पैरेंट टैब में वापस जाएं।

package test;

import java.util.ArrayList;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

public class Tab_Handle {

    public static void main(String[] args) {

        System.setProperty("webdriver.gecko.driver", "geckodriver_path");

        WebDriver driver = new FirefoxDriver();

        driver.get("http://www.google.com");

        // Store all currently open tabs in Available_tabs
        ArrayList<String> Available_tabs = new ArrayList<String>(driver.getWindowHandles());

        // Click on link to open in new tab
        driver.findElement(By.id("Url_Link")).click();

        // Switch newly open Tab
        driver.switchTo().window(Available_tabs.get(1));

        // Perform some operation on Newly open tab
        // Close newly open tab after performing some operations.
        driver.close();

        // Switch to old(Parent) tab.
        driver.switchTo().window(Available_tabs.get(0));

    }

}

0

सेलेनियम नए टैब खोलने का समर्थन नहीं करता है, यह केवल नई विंडो खोलने का समर्थन करता है। सभी उद्देश्यों के लिए एक नई खिड़की वैसे भी कार्यात्मक रूप से एक नए टैब के बराबर है।

मुद्दे के आसपास काम करने के लिए विभिन्न हैक हैं लेकिन वे लंबे समय में आपको अन्य समस्याओं का कारण बनने जा रहे हैं।


0

यदि आप नया टैब खोलना चाहते हैं तो आप इसका उपयोग कर सकते हैं

 ((JavascriptExecutor) getDriver()).executeScript("window.open()");

यदि आप नए टैब से लिंक खोलना चाहते हैं तो आप इसका उपयोग कर सकते हैं

JavascriptExecutor के साथ:

 public void openFromNewTab(WebElement element){
            ((JavascriptExecutor)getDriver()).executeScript("window.open('"+element.getAttribute("href")+"','_blank');");
        }

क्रिया के साथ:

 WebElement element = driver.findElement(By.xpath("your_xpath"));
 Actions actions = new Actions(driver);
        actions.keyDown(Keys.LEFT_CONTROL)
                .click(element)
                .keyUp(Keys.LEFT_CONTROL)
                .build()
                .perform();

-1
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");// open in new tab
driver.get("ur link");

-1

सेलेनियम वेबड्राइवर का उपयोग करके ब्राउज़र विंडो को संभालना:

String winHandleBefore = driver.getWindowHandle();

for(String winHandle : driver.getWindowHandles())  // Switch to new opened window
{
    driver.switchTo().window(winHandle);
}

driver.switchTo().window(winHandleBefore);   // move to previously opened window

प्रश्न को संबोधित करने में विफल। आप जवाब देते हैं कि पहले से मौजूद खिड़की पर स्विच करने के बारे में, ओपी ने पूछा कि नया कैसे खोला जाए।
थॉमस हिर्श
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.