Selenium的一些常用操作

  1. 如果在原页面点击打开了新的页面,如何对新页面进行操作呢?
    答:使用switchTo.window
    使用方法:以下代码只是获取到了当前窗口的句柄,切换到了当前窗口,这样并不能解决问题
String currentWindow = driver.getWindowHandle();

driver.switchTo.window(currentWindow);

进一步思考:需要使用getWindowHandles获取所有窗口的句柄;注意:每次打开同一窗口,Window句柄值都不同,getWindowHandle是获取当前窗口的句柄
下面代码即可实现driver切换到新打开的窗口,从而对新窗口的元素等进行操作。

for(String winHandle:driver.getWindowHandles){
    driver.switchTo.window(winHandle);
}
  1. 在定位页面元素时,使用的方法明明没有错,却怎么也定位不到元素怎么办?
    答:可能页面中嵌套了frame或iframe元素,此时要先切换到该frame/iframe,使用switchTo.frame然后再对元素进行操作,该函数常用操作如下图
driver.switchTo.frame(0);//使用frame坐标来切换
driver.switchTo.frame("iframe");//使用frame的id或者name
driver.switchTo.frame(driver.findElement(By.id("iframe")) );
//切换到名为iframe的元素所在的frame
//注意:最好使用第23种方法进行切换
driver.switchTo().defaultContent();//可切换回原来的框架,进行其它操作

这里写图片描述
3. 操作过程中,该如何处理浏览器弹窗呢?
答:使用Alert alert = driver.switchTo().alert(),对于获取到的alert对象的常用操作如下图所示:
Alert alert = driver.switchTo().alert();
alert.accept();

这里写图片描述

注意:只有在页面出现弹窗才可以使用该方法;只有alert类型的弹窗才适用;在alert弹窗消除之前,无法对其他元素进行操作
4.selenium如何模拟鼠标对元素的拖拽操作?
答:使用dragAndDrop,具体使用案例如下:

webElement source = driver.findElement(By.name("source"));
webElement target = driver.findElement(By.name("target"));
Actions act = new Actions(driver);
act.dragAndDrop(source,target).perform;
  1. 常用系统事件操作,如下图所示:
    这里写图片描述
    使用案例如下:
Actions builder = new Actions(driver);
Actions act = builder.clickAndHold(SomeElement).moveToElement(otherElement).release(otherElement).build();
act.perform;

使用注意事项:Action对象的动作链应该尽量短,使用时最好在执行一个简短的动作后验证页面是否处于正确的状态,然后再执行后面的动作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值