我使用以下代码选项在同一窗口和不同选项卡中打开超链接,但是每次链接将在不同窗口中打开。
1)
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,Keys.RETURN);
driver.findElement(By.linkText(linkText)).sendKeys(selectLinkOpeninNewTab);
2)
Actions act = new Actions(driver);
act.moveToElement(element).doubleClick(element))).build().perform();
3)
Actions act = new Actions(driver);
act.contextClick(driver.findElement(By.xpath(element)))
.sendKeys(Keys.ARROW_DOWN)
.sendKeys(Keys.ARROW_DOWN)
.sendKeys(Keys.RETURN)
.build()
.perform();
预期链接应在同一窗口的不同选项卡中打开,但每次在新窗口中打开。
请帮助。
答案 0 :(得分:0)
我不建议您使用此方法,因为绝对不是您想要的键盘操作,因为它将成为违反Parallel Testing Best Practices的主要约束,因此您将无法在Selenium Grid中运行测试
我建议采用另一种机智的方法:
href
attribute driver.executeScript()
function功能打开一个新标签页示例代码:
WebElement link = driver.findElement(By.linkText(linkText));
String href = link.getAttribute("href");
driver.executeScript("window.open('" + href + "');");
driver.switchTo().window(driver.getWindowHandles().stream().reduce((f, s) -> s).orElse(null));
System.out.println(driver.getTitle()); // at this point you should see the new page title