首页 > 其他分享 >select下拉框处理

select下拉框处理

时间:2023-04-08 21:59:11浏览次数:44  
标签:处理 selenium Assert Select org import 下拉框 select

1. selectByIndex() 根据索引来选取,从0开始

2. selectByValue() 根据属性value的属性值来选取

3. selectByVisibleText()根据标签之间的Text值,也就是页面显示的

注意:导入的包要正确不然会报错。   import org.openqa.selenium.support.ui.Select;

单选下拉列表: 

HTML源码

<tr>
    <td>Select下拉列表</td>
          <div id='select'>
                <select id="selected">
                    <option value ="a">huawei</option>
                    <option value ="b">oppo</option>
                    <option value="c">vivo</option>
                    <option value="d">xiaomi</option>
                    <option value="e">hongmi</option>
                    <option value="f">meizu</option>
                </select>
          </div>                                
    </tr>

java代码

package cn.WebDriverAPI;
//单选下拉框
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;


public class downList {
    public WebDriver driver;
    @Test
    public void test(){
        System.setProperty("webdriver.chrome.driver", "E://chromedriver.exe");
        driver=new ChromeDriver();
        driver.get("file:///C:/Users/Administrator.USER-20180602NR/Desktop/selenium.html");
        WebElement s=driver.findElement(By.xpath("//select[@id='selected']"));
        Select select=new Select(s);
        //isMultiple表示此下拉框列表是否允许多选,返回结果应为false
        Assert.assertFalse(select.isMultiple());
        //输出isMultiple方法返回的值
        Boolean b=select.isMultiple();
        System.out.println("b:"+b);
        //通过选项的文字进行选中
        select.selectByVisibleText("oppo");
        //获取当前被选中的下拉列表选项文本并赋给text1
        String text1=select.getFirstSelectedOption().getText();
        //断言
        Assert.assertEquals("oppo", text1);
        System.out.println("文本"+text1);
        //使用下拉列表选项的value属性值进行选中操作
        select.selectByValue("c");
        //获取当前被选中的下拉列表选项文本并赋给text2
        String text2=select.getFirstSelectedOption().getText();
        //断言
        Assert.assertEquals("vivo",text2);
        //通过索引选择,从0开始
        select.selectByIndex(3);
        String text3=select.getFirstSelectedOption().getText();
        Assert.assertEquals("xiaomi",text3);
    }
    @AfterMethod
    public void afterMethod(){
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        driver.quit();
    }

}

多选的下拉列表:

HTML源码

<select id="selects" multiple="multiple">
            <option value="java">java</option>
            <option value="c">c</option>
            <option value="c++">c++</option>
            <option value="VB">VB</option>
            <option value="php">php</option>
            <option value="python">python</option>
            <option value="ruby">ruby</option>
</select>

java代码

WebElement mus=driver.findElement(By.id("selects"));
        Select select=new Select(mus);
        //断言下拉列表是否支持多选,支持多选isMultiple方法则返回True
        Assert.assertTrue(select.isMultiple());
        //通过索引选择
        select.selectByIndex(0);
        //获取当前被选中选项的文字
        String text=select.getFirstSelectedOption().getText();
        //断言获取到的文字是否符合实际
        Assert.assertEquals("java",text);
        //通过value值选择
        select.selectByValue("c");
        //通过选项文字选择
        select.selectByVisibleText("VB");
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //取消所有选项的选中状态
        select.deselectAll();

 

标签:处理,selenium,Assert,Select,org,import,下拉框,select
From: https://www.cnblogs.com/ixtao/p/17299319.html

相关文章

  • 16.异常处理
    异常处理什么是异常本节开始介绍之前,先看看如下程序:>>>print(a)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>NameError:name'a'isnotdefined>>>是不是很熟悉,这是我们前面经常看到的程序运行出现的错误。作为Python初学者,在学习Pyth......
  • java -- 异常处理、Collection、Iterator迭代器、泛型
    异常处理Java异常处理的五个关键字:try、catch、finally、throw、throws抛出异常throw在编写程序时,我们必须要考虑程序出现问题的情况当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法,就应该告诉调用者,传递合法的数据进来。这时需要使用抛出异常的......
  • Laravel日期处理
    1.常用:echoCarbon::now();//2016-10-1415:18:34echoCarbon::today();//2016-10-1400:00:00echoCarbon::tomorrow('Europe/London');//2016-10-1400:00:00echoCarbon::yesterday();......
  • 基于matlab模拟雷达信号检测中的恒虚警处理方法(慢门限和快门限)
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • MQ——消息积压如何处理
    一、消息积压的原因1、producer生产消息突然增多比如大促期间,抢购,秒杀业务。2、consumer消费性能突然下降比如消费失败时重试,程序死锁,io阻塞。3、消费系统本身出现瓶颈这种情况很少,对于绝大多数使用消息队列的业务来说,消息队列本身的处理能力要远大于业务系统的处理能力。主......
  • python之json格式化与紧凑处理
    格式化在工作中json是我们常用的数据格式,因为格式化与紧凑存储所占的内存是不同的,格式化存储接近大一倍空间。所以有时候需要紧凑存储(一行存储),但是查看不太方便。场景:记事本打开json的速度最快,但是没有格式化功能。notepad++可以格式化但是需要联网安装插件,内网环境不能下载......
  • 冷知识:预处理字符串操作符
    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/Xr2pFCJ4j0DZYo2PO6-KQg当年学习C语言的第一门课就提到过标记(Token)的概念,不过,相信在多年之后你再次听到这个术语时会一脸懵逼,比如我。因此特地翻了翻资料,整理下来这些笔记......
  • vs调试“字符串中字符无效”处理办法
    在使用VS2019调试代码时,查看变量值时,utf8格式字符串不能正常显示,需要在变量名后手动添加",s8",就能正常查看字符啦。总结如下:,s8:将字符串转成unicode展示,数字将变量拆分为数组显示,数字是要显示多少位,此法对constchar*这类原始字符串非常有用,x16进制查看,hr查看Win......
  • PG-表膨胀及处理
    背景最近处理了几起线上实例表膨胀的问题。表膨胀是指表的数据和索引所占文件系统的空间,在有效数据量并未发生大的变化的情况下,不断增大。PG使用过程中需要特别关注这方面,我们来给大家解析一下表膨胀的原因。表膨胀的直接触发因素是表上的大量更新,如全表的update操作、大量的ins......
  • Mysql_无法删除数据库的处理方法
    问题现象使用Navicat删除数据库一直转圈定位问题执行 SHOWPROCESSLIST;  提示元数据无法被锁定执行  select*frominformation_schema.innodb_trx\G; 发现有进程一直处于运行中解决方法kill进程id 重新查看没有 Waiting进程,showdatabases; 发现库已被......