无法在Chrome中打开新标签页,所有解决方案均不起作用

时间:2018-08-07 10:06:34

标签: google-chrome selenium web-applications webdriver salesforce

我正在从事Salesforce自动化。有一种情况使用一次登录:

  1. 我将登录到Salesforce应用程序;
  2. 打开一个新标签,然后单击使用Salesforce帐户登录;
  3. 上传Excel并切换回Salesforce选项卡。

我能够登录Salesforce应用程序,但无法打开新标签 我已经尝试过以下解决方案:

解决方案1:

Actions act = new Actions(driver);   
act.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).build().perform();

解决方案2:

Robot robot=new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_T);

解决方案3:

String KeyString = Keys.CONTROL+"t";
driver.findElement(By.tagName("body")).sendKeys(KeyString);

解决方案4:

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

有人遇到问题吗?对此可能有什么解决方案?

1 个答案:

答案 0 :(得分:1)

您可以使用JavascriptExecutor切换到新标签。切换无法自动进行。因此,这是一个两阶段解决方案。

 ((JavascriptExecutor) driver).executeScript("window.open('http://example.com/','_blank');");

以上代码将在新标签页中打开example.com。

现在您可以使用以下方式进行切换:

Set<String> tab_handles = driver.getWindowHandles();
int number_of_tabs = tab_handles.size();
int new_tab_index = number_of_tabs-1;
driver.switchTo().window(tab_handles.toArray()[new_tab_index].toString());