【selenium+Java】界面测试_脚本操作全记录

基本操作

等待几秒

 Thread.sleep(500); //单位是毫秒  

这里建议另写一个 wait方法,调用起来简单些,不然在主程序会有过多的trycatch语句而显得杂乱

public static void wait(int num){
    try {
      Thread.sleep(num);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
}

正经的超时设置

WebDriver driver = new FirefoxDriver();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);      //识别元素时的超时时间

driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);  //页面加载时的超时时间

driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS);  //异步脚本的超时时间

模拟键盘操作,使用enter键

sendKeys(Keys.ENTER) driver.findElement(By.xpath("//*[@id='kw']")).sendKeys(Keys.ENTER); 

获取cookie //获得cookie

  Set<Cookie> coo = driver.manage().getCookies();     
  System.out.println(coo);  //打印cookie

删除cookie

  //删除所有cookie    
   driver.manage().deleteAllCookies(); 

鼠标操作

鼠标点击

Actions action = new Actions(driver); action.click();   //鼠标左键点击当前停留的位置 
action.click(driver.findElement(By.id(“kw”))); //鼠标左键点击指定的元素对象 
 鼠标右键点击 Actions action = new Actions(driver); action.contextClick();   //鼠标右键点击当前停留的位置 
action.contextClick(driver.findElement(By.id(“kw”))); //鼠标右键点击指定的元素对象  

鼠标双击

  Actions action = new Actions(driver); action.doubleClick();  //鼠标双击当前停留的位置 
action.doubleClick(driver.findElement(By.id(“kw”)));  //鼠标双击指定的元素对象 

鼠标拖拽

 Actions action = new Actions(driver); action.dragAndDrop(el1,el2);  //鼠标将el1元素拖放到el2元素的位置
 action.dragAndDrop(el1,x,y);  //鼠标el1元素拖放到(x, y)位置,x为横坐标,y为纵坐标 

鼠标悬停

Actions action = new Actions(driver); action.clickAndHold(el);  //鼠标悬停在el元素的位置 

鼠标移动

 Actions action = new Actions(driver); action.moveToElement(el);  //将鼠标移到el元素 action.moveToElement(el,x,y);   //将鼠标移到元素el的 (x, y) 位置 

鼠标释放

 action.release();  //释放鼠标    

打开新页面

  driver.get("http://beta.zhixiaoup.com");              //打开新页面     

  JavascriptExecutor js = (JavascriptExecutor) driver;      
   String url="window.open(\"http://www.baidu.com\")";      
    js.executeScript(url);   

浏览器操作

浏览器最大化

 driver.manage().window().maximize();

浏览器缩放

  String url="document.getElementsByTagName('body')[0].style.zoom=0.8;";  
  ((JavascriptExecutor) driver).executeScript(url);

浏览器当前页面关闭

driver.close();

浏览器关闭

driver.quit():

页面操作

打开网页:

driver.get("https://www.baidu.com");
在输入框中输入内容:text.sendKeys(“”);
清空输入框中的内容:text.clear();
获取输入框中的内容:text.getText();

选择下拉框中的元素:

Select select = new Select(wd.findElement(By.id("select")));

切换到某个frame:

driver.switchTo().frame("");

从一个frame切换到另一个frame:

driver.switchTo().frame("");

切换到某个window:

driver.switchTo().window("windowName");

返回父iframe:(一般在跳转frame之前都写上这个语句)

driver.switchTo().defaultContent();

刷新页面:

driver.navigate().refresh();

页面前进后退:

driver.navigate().forward();

driver.navigate().back();

输入框

element.sendKeys(“test”);//在输入框中输入内容:

element.clear();       //将输入框清空

element.getText();     //获取输入框的文本内容: 

下拉选择框

Select select = new Select(driver.findElement(By.id("select")));  

select.selectByVisibleText(“A”);

select.selectByValue(1); 

select.deselectAll();

select.deselectByValue(1);

select.deselectByVisibleText(“A”);

select.getAllSelectedOptions();

select.getFirstSelectedOption(); 

单选框

WebElement radio=driver.findElement(By.id("BookMode"));

radio.click();       //选择某个单选项

radio.clear();      //清空某个单选项

radio.isSelected();  //判断某个单选项是否已经被选择

多选框

WebElement checkbox = driver.findElement(By.id("myCheckbox."));

checkbox.click();

checkbox.clear();

checkbox.isSelected();

checkbox.isEnabled();

弹出对话框

Alert alert = driver.switchTo().alert();

alert.accept();  //确定

alert.dismiss();  //取消

alert.getText(); //获取文本

表单

WebElement approve = driver.findElement(By.id("approve"));

approve.click();

approve.submit();//只适合于表单的提交

判断搜索结果是否正确

例子:
在这里插入图片描述

显示列表
在这里插入图片描述

相关HTML
在这里插入图片描述

获取职位名称元素

List<WebElement> elements = driver.findElements(By.cssSelector("div[class='card_title_and_tips'] > div"));

具体代码如下

/*
     * 机会搜索匹配
     */
    @Test
    public void search() throws InterruptedException {
        f();
        Thread.sleep(1000);
        //在搜索框中输入“新东方大厨”
        String value= "新东方大厨";
        driver.findElement(By.cssSelector("input[placeholder='搜索职位/公司']")).sendKeys(value);
        //点击搜索
        driver.findElement(By.cssSelector("div[class='el-input-group__append']")).click();
        Thread.sleep(1000);
        //查看搜索结果
        List<WebElement> elements = driver.findElements(By.cssSelector("div[class='card_title_and_tips'] > div"));
        for(WebElement e:elements) {
            System.err.println(e.getText());
            String name = e.getText();
            //查询名称为空字串时跳出循环
            if(name.equals("")) {
                break;
            }
            //判断职位中是都包含搜索关键字,若不包含报错
            if(!e.getText().contains(value)&&!name.equals("")) {
                Assert.fail("搜索结果错误");
            }
        }
    }
原创文章 11 获赞 2 访问量 778

猜你喜欢

转载自blog.csdn.net/Johnny_sc/article/details/106173107