Selenium的一些常用操作

Dear 丶 2022-06-14 04:14 265阅读 0赞
  1. 如果在原页面点击打开了新的页面,如何对新页面进行操作呢?
    答:使用switchTo.window
    使用方法:以下代码只是获取到了当前窗口的句柄,切换到了当前窗口,这样并不能解决问题

    String currentWindow = driver.getWindowHandle();

    driver.switchTo.window(currentWindow);

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

  1. for(String winHandle:driver.getWindowHandles){
  2. driver.switchTo.window(winHandle);
  3. }
  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
    //注意:最好使用第2,3种方法进行切换
    driver.switchTo().defaultContent();//可切换回原来的框架,进行其它操作

这里写图片描述

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

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

  1. webElement source = driver.findElement(By.name("source"));
  2. webElement target = driver.findElement(By.name("target"));
  3. Actions act = new Actions(driver);
  4. 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 条评论,265人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mklink 一些常用操作总结

    NTFS 符号链接又称“符号链接”,是 NTFS 文件系统中指向文件系统中的另一个对象的一类对象,被指向的对象叫做“目标”。 mklink 是 Windows 下用于创建符号

    相关 nohup jobs后台任务一些常用操作

    由于某些脚本或程序执行时间较长,需要将其放到后台去执行,那么放到后台之后怎么知道是否正常运行呢?怎么将其重新放到前台呢?怎么去结束一个正在后台运行的任务呢? 1.查看后台任务