Selenium常用API及操作

1、获取Cookie

Set cookies = driver.manage().getCookies();

2、判断页面元素是否存在
public boolean isElement(By by){
           try{
                driver.findElement(by);
                return true;
           }
           catch(NoSuchElementException e){
                e.printStackTrace();
                return false;
           }
     }

3、对话框的处理
① 在处理对话框中输入字符
driver.switchTo().alert().sendKeys("这是输入对话框.........");

② 单击对话框的确定按钮
driver.switchTo().alert().accept();

4、模拟鼠标和键盘的操作
① 按下ctrl
Actions action = new Actions(driver);
action.keyDown(Keys.CONTROL);//按下CTRL键
action.keyUp(Keys.CONTROL);//释放CTRL键

②在某个元素下鼠标右键
Actions action = new Actions(driver);
action.contextClick(driver.findElement(By.id("kw"))).perform();

5、单选框和复选框的操作
思路:对于元素属性(id、name等)有一定规律的可通过下面这种方式进行循环遍历(代码一)
对于元素属性一致的,可通过driver.findElements(WebElement ele)获取元素集合(代码二)

  /**
   * 依次点击单选框
   */
  for(int i=1;i<=4;i++){
       driver.findElement(By.id("56483746999079_chk_"+i)).click();
       driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
   }

/**
 * 复选框的操作
 */
List checkboxs=driver.findElements(By.name("id"));
 /**
  * 遍历当前页面的复选框并依次勾选
  */
   for(int i=0;i dates=times.findElements(By.tagName("option"));
            for(int i=0;i handles=driver.getWindowHandles();
           Log4jTool.info(("当前窗口数量为:"+handles.size()));
           Iterator iterator=handles.iterator();
           while(iterator.hasNext()){
                if(currentwindow==iterator.next()){
                     continue;
                }
                try{
                     driver.close();//关闭旧窗口
                     WebDriver window=driver.switchTo().window(iterator.next());//切换到新窗口
                     Log4jTool.info("成功切换到新窗口"+window.getTitle());
                }catch(Exception e){
                     Log4jTool.info("切换窗口失败"+e.getMessage());
                }
           }
     }

8、上传文件
driver.findElement(By.id("file")).sendKeys("C:\\Users\\ChangRyi\\Desktop"
           + "\\Selenium3\\截图文件\\2017_11_28_213339.jpg");
//点击上传
driver.findElement(By.id("filesubmit")).click();


9、精准对比截图
            /**
             * 两个文件进行像素比较的实现,获取文件像素大小,
             * 然后逐一比对,如果有任意一个像素不同则视为这两张截图不一致
             */
            try {
                  BufferedImage oldbufferedImage=ImageIO.read(oldfile);
                  DataBuffer oldDataBuffer=oldbufferedImage.getData().getDataBuffer();
                  int oldsize=oldDataBuffer.getSize();
                  BufferedImage newbufferedImage=ImageIO.read(newfile);
                  DataBuffer newDataBuffer=newbufferedImage.getData().getDataBuffer();
                  int newsize=newDataBuffer.getSize();
                  //截图是否一致标志
                  boolean iscomparison=true;
                  if(oldsize==newsize){
                        for(int i=0;i

你可能感兴趣的:(Selenium常用API及操作)