Java+selenium学习日志(4):句柄与鼠标操作

    在上篇文章里,提到了一个切换句柄的功能,切换句柄实际上就是切换网页的窗口。为什么需要切换句柄呢?因为计算机与真实的用户不一样,用户可以打开新的窗口之后,就可以直接在新的页面进行操作,而计算机在打开一个新的页面之后,它所操作的句柄并不会自动的跳转到新的页面之中,而是在原先的句柄中进行操作。简单来说,计算机就只是完成打开一个新页面的过程,影响到的是原来的页面,与新的页面没有关系。
    那么要怎样切换到新的页面呢?在webdriver中提供了一个switch.to.window(handle)的方法。接下来利用一个利用百度搜索bilibili并跳转到b站页面进行操作的例子来介绍一下该方法的用法。关键代码如下:

//运用部分文本找到b站官网
driver.findElement(By.partialLinkText("干杯")).click();
// 获取当前页面句柄  
String handle = driver.getWindowHandle();  
// 获取所有页面的句柄,并循环判断不是当前的句柄 
for (String temhandle : driver.getWindowHandles()) {  
    if (!temhandle.equals(handle))  
    driver.close();//切换到新页面之后关闭当前页面
    driver.switchTo().window(temhandle); 
}
Thread.sleep(2000);
//检测句柄是否切换到了当前页面
driver.findElement(By.cssSelector("li.nav-item:nth-child(3) > a:nth-child(1)")).click();

通过这样一个for循环,我们就可以跳转到新的页面上进行操作了。
    介绍完切换句柄之后,再来介绍一下有关模拟鼠标的操作。鼠标事件主要有一下五种:
1、左击

Actions action = new Actions(driver);
action.click(WebElement).perform();

2、双击

 action.doubleClick(WebElement).perform();

3、拖动

action.dragAndDrop(WebElement begin,WebElement end).perform();

4、悬停

action.moveToElement(WebElement).perform();

5、右击

action.contextClick(WebElement).perform();
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值