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

Posted zddwork

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

 

以上是关于selemiun 下拉菜单复选框弹框定位识别的主要内容,如果未能解决你的问题,请参考以下文章

asp二级联动下拉菜

如果空格键在所有浏览器中打开下拉菜单,为啥我的 onchange 触发菜单被认为无法访问

如何在从下拉菜单中进行选择后显示复选框列表,具体取决于下拉菜单选择?

UI自动化之特殊处理二(弹框下拉框选项文件上传)

easyui 修改方法时下拉列表框的回显怎么写

selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等