我正在开发一个项目,其中包括点击链接,并且应该使用webdriver在新标签页中打开,问题是
假设的链接包含在iFrame中,因此shift+click
无效
private void openInNewTabAndSwitch(WebElement linkElement) {
// logic of opening in new tab goes here...
Actions newTab = new Actions(driver);
newTab.keyDown(Keys.SHIFT).click(linkElement).keyUp(Keys.SHIFT).build().perform();
Set<String> windowSet = driver.getWindowHandles();
driver.switchTo().window((String) windowSet.toArray()[1]); }
我找不到href
属性,因为某些javascript函数使用某些onClick()
打开它
<a onclick="javascript:LinkOccam (this, 'opportunity');">Mednomics Proposition</a>
问题: - 它只是在同一个标签页中打开所需的页面。
现在,我找不到与此相关的任何内容,请帮助..!
其他相关信息 我使用的是Windows 7,Java 8,ChromeDriver
答案 0 :(得分:0)
当您单击 WebElement 时会打开 New TAB ,您无需担心 WebElement 是否在上>顶级浏览上下文或 iFrame 中。此外,在切换 TAB 时,会导致 WebDriverWait 并相应地切换。为此,您可以使用以下代码块:
private void openInNewTabAndSwitch(WebElement linkElement)
{
String parentTab = driver.getWindowHandle();
Actions newTab = new Actions(driver);
newTab.keyDown(Keys.CONTROL).click(linkElement).keyUp(Keys.CONTROL).build().perform();
WebDriverWait wait = new WebDriverWait(driver,5);
wait.until(ExpectedConditions.numberOfWindowsToBe(2));
Set<String> windowSet = driver.getWindowHandles();
for(String tab:windowSet)
{
if(!parentTab.equalsIgnoreCase(tab))
{
driver.switchTo().window(tab);
//do your work in the newly opened TAB
}
}
}