加载中
小小de太阳 2018/07/04 22:26 发布了新博客:
小小de太阳 2016/01/14 23:06 发布了新博客:
你说的意思我明白,是如何跳转到新页面,但我的问题是: 如果链接不支持打开新页签,如何强制打开一个新页签.
@小小de太阳
我想在selenium测试的时候,点击一个按钮,在新窗口中打开.但是页面代码中不存在target="_blank"...

三年前的问题,竟然一直没有人回答,那我只能自己来解决一下了.

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);
}



希望给后边的人一些帮助

@小小de太阳
我想在selenium测试的时候,点击一个按钮,在新窗口中打开.但是页面代码中不存在target="_blank"...
小小de太阳 2015/12/18 17:01 回答了问题: ClassCastException异常

谢谢哥, 原来问题是这样的, 我在项目里用到了ant和maven, ant打包的时候会把maven中的那些jar包都放到WEB-INF下的lib文件夹,然后我在eclipse测试测试的时候,虽然是用maven构建的项目,但项目依然会进入lib文件夹读取jar包.

而我确实升级了一下jedis的版本,从2.1.0->2.7.3,导致有两个jar包依赖.结果2.7.3的类构建的对象又被赋值给2.1.0版本的类声明的变量,结果出错了.

解决方案就是,我把lib下的包都删掉了. 然后在ant打包的时候,加了删除的内容,保证lib包的内容始终跟开发项目里的内容同步.搞定.

@小小de太阳
我在使用JedisCluster的实例,调用它的方法getClusterNodes()然后给一个JedisPool...
小小de太阳 2015/12/14 11:29 回答了问题: ClassCastException异常
我也考虑过classloader的问题,但是发现不是classloader的问题
@小小de太阳
我在使用JedisCluster的实例,调用它的方法getClusterNodes()然后给一个JedisPool...
小小de太阳 2015/12/14 11:28 回答了问题: ClassCastException异常

我在上边对JedisPool进行了一下构造, 失败了,也报了一个异常:

Caused by: java.lang.NoSuchMethodError: redis.clients.jedis.JedisPool: method <init>()V not found
	at com.redis.monitor.redis.impl.RedisServiceImpl.ping(RedisServiceImpl.java:530)
	at com.redis.monitor.manager.impl.RedisManagerImpl.ping(RedisManagerImpl.java:190)
	at com.redis.monitor.web.interceptor.ServerInteceptor.preHandle(ServerInteceptor.java:93)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:891)
	... 31 more



这个问题我查了一下,也没搜到个结果来.

@小小de太阳
我在使用JedisCluster的实例,调用它的方法getClusterNodes()然后给一个JedisPool...
小小de太阳 2015/12/14 09:47 发布了问题:
小小de太阳 2014/06/20 16:40 回答了问题: 找Java技术经理的职位
正是寻求突破的瓶颈时候,之前做过leader,技术经理的职位还真是没做过,不过很希望到这个层次.弱弱的说,貌似只有激情也是不够的哈~
@小小de太阳
毕业时间:08年; 学校:北京化工大学; 学历:大学本科; 籍贯:北京延庆; 目前居住地:西二旗附近; 工作时间:...
小小de太阳 2014/06/20 16:39 回答了问题: 找Java技术经理的职位
谢谢赐教~~
@小小de太阳
毕业时间:08年; 学校:北京化工大学; 学历:大学本科; 籍贯:北京延庆; 目前居住地:西二旗附近; 工作时间:...
小小de太阳 2014/06/20 16:38 回答了问题: 找Java技术经理的职位
其实我今儿就被问到了hadoop,这个确实还不会
@小小de太阳
毕业时间:08年; 学校:北京化工大学; 学历:大学本科; 籍贯:北京延庆; 目前居住地:西二旗附近; 工作时间:...
小小de太阳 2013/05/10 11:06 评论了博客:Java多线程之Callable接口的实现
比较关心future2的过程。如果future2调用get()的话,是不是就一直处于死锁了?
调用cancel的时候传入true,如果传入false又会怎样?
还有一个问题:
你这三个任务是线性执行的,也就是一个执行结束才执行另一个,所以我觉得newFixedThreadPool(1)就已经足够了。
@underA
import java.util.concurrent.Callable; import java.util.co...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部