[selenium] Selenium WebDriver를 사용하여 새 탭을 여는 방법은 무엇입니까?

Selenium WebDriver (일명 Selenium 2)를 사용하여 기존 Firefox 브라우저에서 새 탭을 여는 방법은 무엇입니까?



답변

아래 코드는 새 탭에서 링크를 엽니 다.

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);


답변

Ruby / Python / C # 바인딩 (Selenium 2.33.0)에서 답을 찾고있는 다른 사람을위한 것입니다.

전송의 실제 키는 예를 들어, 맥 사용을 위해, 당신의 OS에 따라 달라집니다 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();
        }
    }
}


답변

왜 안돼

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


답변

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));


답변

Chrome 드라이버에서 새 창을 열려면.

//The script that will will open a new blank window
//If you want to open a link new tab, replace 'about:blank' with a link
String a = "window.open('about:blank','_blank');";
((JavascriptExecutor)driver).executeScript(a);

탭 사이를 전환하려면 여기를 읽으십시오.


답변

Selenium WebDriver와 함께 Java를 사용하여 다음 코드를 사용할 수 있습니다.

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

JavaScript를 사용하여 :

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));


답변

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));
}