• selemiun 下拉菜单、复选框、弹框定位识别


    一、下拉菜单识别

    对下拉框的操作,主要是通过Select 类里面的方法来实现的,所以需要new 一个Select 对象(org.openqa.selenium.support.ui.Select)来进行操作

        public void selectDemo() throws InterruptedException {
            driver.get("http://tieba.baidu.com/f/search/adv?red_tag=v3168911135");
            driver.manage().window().maximize();
            Select sel =new Select(driver.findElement(By.name("sm")));
    //        通过下拉框value值选择
            sel.selectByValue("2");
            Thread.sleep(2000);
    //        通过下拉框索引选择第一项
            sel.selectByIndex(0);
            Thread.sleep(2000);
    //        通过下拉框可见文本选择
            sel.selectByVisibleText("按时间顺序");

     主要的方法有:

     1 boolean isMultiple()      //判断下拉框是否多选模式
     2 void selectByIndex(int index)     //选中指定index的项,单选多选均有效,当index超出范围时,抛出NoSuchElementException异常
     3 void selectByValue(String value)     //选中所有Select标签中,value为指定值的所有项,单选多选均有效,当没有适合的项时,抛出NoSuchElementException异常
     4 void selectByVisibleText(String text)     //选中所有项的文字为指定值的项,与deselectByValue相反,但单选多选模式均有效,当没有适合的项时,抛出NoSuchElementException异常
     5 void deselectAll()       //取消所有选择项,仅对下拉框的多选模式有效,若下拉不支持多选模式,则会抛出异常 UnsupportedOperationException(不支持的操作)
     6 void deselectByIndex(int index)     //取消指定index的选择,index从零开始,仅对多选模式有效,否则抛出异常 UnsupportedOperationException(不支持的操作)
     7 void deselectByValue(String value)     //取消Select标签中,value为指定值的选择,仅对多选模式有效,否则抛出异常 UnsupportedOperationException(不支持的操作)
     8 void deselectByVisibleText(String Text)     //取消项的文字为指定值的项,例如指定值为Bar,项的html为 <option value="foo">Bar</option>,仅对多选模式有效,单选模式无效,但不会抛出异常
     9 List<WebElement>getAllSelectedOptions()      //获得所有选中项,单选多选模式均有效,但没有一个被选中时,返回空列表,不会抛出异常
    10 WebElement getFirstSelectedOption()      //获得第一个被选中的项,单选多选模式均有效,当多选模式下,没有一个被选中时,会抛出NoSuchElementException异常
    11 List<WebElement>getOptions()      //获得下拉框的所有项,单选多选模式均有效,当下拉框没有任何项时,返回空列表,不会抛出异常

    获取下拉菜单所有的option,并判断默认选择项

     1 public void mutilSelectDemo() {
     2         driver.get("http://tieba.baidu.com/f/search/adv?red_tag=v3168911135");
     3         driver.manage().window().maximize();
     4         List<WebElement> lw=driver.findElement(By.name("sm")).findElements(By.tagName("option"));
     5         System.out.println("总共有:"+lw.size()+" 个选项");
     6         for (int i = 0; i < lw.size(); i++) {
     7             if (null!=lw.get(i)&&"按时间倒序".equals(lw.get(i).getText())) {
     8                 System.out.println("默认选择的是"+lw.get(i).getText());
     9                 
    10             }
    11         }
    12         
    13     }

    二、单选框、复选框--checkbox、radiobox操作

    checkbox和radio,一般情况下这两种都是 input 标签,可以通过元素定位后,click()方法直接操作

    1 driver.findElement(By.id("subMerType2")).click();

    三、页面弹框--alert 操作

    Alert弹框操作之前要先切换到Alert页面,则需要使用:org.openqa.selenium.Alert类

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

    弹框的操作方法有:

    • accept()          // 弹框确认操作
    • dismiss()        // 弹框取消操作
    • getText()        // 获取弹框上的文本
    1         driver.findElement(By.id("commit")).click();
    2         Thread.sleep(3000);
    3         Alert alert =driver.switchTo().alert();
    4         System.out.println(alert.getText());
    5         alert.accept();
    6         alert.dismiss();
  • 相关阅读:
    c++入门之初话结构体
    c++学习之字符串拼接
    数组赋值问题
    c++之sizeof的用法
    MySQL 创建一个简单的成绩管理系统
    KMP算法详解
    [Leetcode] Implement strstr
    [Leetcode] Multiply strings 字符串对应数字相乘
    [Leetcode] count and say 计数和说
    [Leetcode] Roman to integer 罗马数字转成整数
  • 原文地址:https://www.cnblogs.com/zddwork/p/11353903.html
Copyright © 2020-2023  润新知