我正在从事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");
有人遇到问题吗?对此可能有什么解决方案?
答案 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());