如何打开新标签页

时间:2018-08-02 05:53:14

标签: java selenium awtrobot

Robot rb =new Robot();

rb.keyPress(KeyEvent.VK_CONTROL);

rb.keyPress(KeyEvent.VK_T);

rb.keyRelease(KeyEvent.VK_CONTROL);

rb.keyRelease(KeyEvent.VK_T);

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

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

3 个答案:

答案 0 :(得分:0)

您可以参考

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

答案 1 :(得分:0)

只需在创建新标签后添加一个暂停,如下所示:

Robot rb = new Robot();
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_T);
rb.keyRelease(KeyEvent.VK_CONTROL);
rb.keyRelease(KeyEvent.VK_T);
// add a pause
Thread.sleep(1000);
ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(1)); 
// open website in a new tab
driver.get("https://stackoverflow.com");

或者甚至更好地使用WebDriverWait

Robot rb =new Robot();
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_T);
rb.keyRelease(KeyEvent.VK_CONTROL);
rb.keyRelease(KeyEvent.VK_T);
new WebDriverWait(driver, 10).until(ExpectedConditions.numberOfWindowsToBe(2));
ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
driver.get("https://stackoverflow.com");

这将至少等待10秒钟,直到标签数为2。

注意: ,您必须添加一些导入:

import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

答案 2 :(得分:0)

尝试此操作,您可以使用Your oAuth token for 'Bitbucket' is invalid. Would you like to refresh your oAuth credentials or try again without oAuth? JavascriptExecutor

打开新标签页
Keys.chord

或使用

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