怎么通过selenium实现在新窗口打开链接
2个回答
2017-04-24 · 为您提供更好的产品和服务
七彩虹科技有限公司
七彩虹科技成立于1995年,中国著名的DIY硬件厂商, 亚太区最重要的显示卡提供商之一。专注于IT硬件产品研发、生产和销售,致力于为个人和企业用户提供最具创新与实用价值的硬件产品及应用方案。
向TA提问
关注
展开全部
WebElement link = element.findElement(By.tagName("a"));
String href = link.getAttribute("href");
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("window.open('" + href + "')");
具体方式就是拿到一个连接的WebElement对象,然后通过getAttribute("href")属性获取它的链接地址.
然后通过调用javascript脚本的方式,执行window.open()方法在一个新窗口打开这个链接.
然后需要通过切换handle的方式跳转到这个新的页面去.具体方法:
for (String toHandle : driver.getWindowHandles()) {
if (toHandle.equals(curHandle)) {
continue;
}
driver.switchTo().window(toHandle); //切换到另一个新句柄
SubjectPage subPage = PageCreator.createPage(SubjectPage.class);//创建页面,我自己封装的,可忽略
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
// TODO
subPage.closeMe(); //自己封装的,忽略...
driver.switchTo().window(curHandle);
}
String href = link.getAttribute("href");
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("window.open('" + href + "')");
具体方式就是拿到一个连接的WebElement对象,然后通过getAttribute("href")属性获取它的链接地址.
然后通过调用javascript脚本的方式,执行window.open()方法在一个新窗口打开这个链接.
然后需要通过切换handle的方式跳转到这个新的页面去.具体方法:
for (String toHandle : driver.getWindowHandles()) {
if (toHandle.equals(curHandle)) {
continue;
}
driver.switchTo().window(toHandle); //切换到另一个新句柄
SubjectPage subPage = PageCreator.createPage(SubjectPage.class);//创建页面,我自己封装的,可忽略
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
// TODO
subPage.closeMe(); //自己封装的,忽略...
driver.switchTo().window(curHandle);
}
2017-04-24
展开全部
用来设置这个网页所有链接的目标窗口。也就是说,网页中只要添加这句,那么所有的超链接就无须单独设置。最好将这句写在和之间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询