Java Selenium

摘要:
PublicstaticvoidSearchText{dr.get;dr.findElement.clear();//clearextdr.findElement.sendKeys;//inputourteststringdr.findElement.click();//clicksearchbutton}可以真正搜索JD的测试数据……要对下拉框进行操作,请首先找到下拉框,创建Selset对象(高亮显示),然后对其进行操作。

一篇概括了常用的元素定位方法,但是找到元素还是不够的,模拟鼠标的操作,完成各个功能点的自动操作才是关键。

下面是常见的页面元素操作会涉及到的方法,不是很全,比较复杂的后面单独拿出来做案例。

Java Selenium第1张

一, 输入框 ,按钮

登录到京东,找到主页的搜索框,这就是经典的输入框,然后点击搜索按钮,完成搜索的动作。

Java Selenium第2张

    public static void SeachText(WebDriver dr, String URL){
        dr.get(URL);
        dr.findElement(By.id("key")).clear();//clear text
        dr.findElement(By.id("key")).sendKeys("test");//input your test string
        
        dr.findElement(By.className("button")).click();//click search button
    }

真的能搜出京东的测试数据。。。在真实工作场景中,这个输入框的输入内容要做一条完整的case,需要考虑到很多情况,边界值,特殊字符,长度限制等等。

Java Selenium第3张

二,下拉选择框 ,iframe , 鼠标悬停

同样是京东首页,右边有个手机充值的下拉选择框,我们用这个做案例,看看Select的用法。

对下拉框进行操作时首先要定位到这个下拉框,new 一个Selcet对象(划重点),然后对它进行操作。

 Java Selenium第4张

下面可以看到下拉元素的所有操作方法,可以选择指定元素(按索引,显示文本,value),可以获取下拉菜单所有选择项等等。从上图中可以看到,value是10,对应的显示文本是”10元“,现在页面默认显示“100元”,所有100对应的option是“selected”已选择状态。

Java Selenium第5张

本以为很简单,按照上面的id定位到下拉菜单就可以操作。。。等写代码才发现不是这样简单的,木事,工作中也一样,有坑填坑。首先,要鼠标指向“话费”悬停,然后指向“话费充值”悬停(这个地方默认是话费充值,不写也没关系,但工作中保险起见,还是写上),最后去找Select.

这个案例覆盖了多个经典元素操作:1.鼠标悬停 2.iframe 3.Select 对象 , 赚到了,有木有:)

Java Selenium第6张

代码示例:

    public static void Mobile_Selector(WebDriver dr, String URL){
        dr.get(URL);
        Actions actions =new Actions(dr);//悬停操作action
        actions.moveToElement(dr.findElement(By.className("service_txt"))).perform();//悬停操作方法
        
        dr.switchTo().frame(0);//切入到本页面第一个iframe
        actions.moveToElement(dr.findElement(By.linkText("话费充值"))).perform();
        
            
        dr.switchTo().frame(0);//切入子iframe,与上面的iframe存在包含关系,所以index是0.
        dr.findElement(By.id("phoneNumber")).sendKeys("15012345678");//输入测试手机号,这个真实测试的时候,需要参数化
        
        Select select = new Select(dr.findElement(By.id("select-price-money")));//选择充费钱数

        int length = select.getOptions().size();
        System.out.println(length);

        select.selectByIndex(length-1);//下拉菜单索引从0开始
        
        select.selectByIndex(3);
        //select.selectByValue("10");
        //select.selectByVisibleText("20元");
        
        dr.findElement(By.className("btn-submit")).click();//点击快速充值    
    }

运行成功后:

Java Selenium第7张

 

免责声明:文章转载自《Java Selenium》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇pycharm中以pytest的方式运行测试用例分享10个必备的简化Web设计的HTML5工具下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)

五、锁与事务隔离级别 事务隔离级别简单的说,就是当激活事务时,控制事务内因SQL语句产生的锁定需要保留多入,影响范围多大,以防止多人访问时,在事务内发生数据查询的错误。设置事务隔离级别将影响整条连接。 SQL Server 数据库引擎支持所有这些隔离级别: · 未提交读(隔离事务的最低级别,只能保证不读取物理上损坏的数据) · 已提交读(数据库引擎的默认级...

Sql server 实用技巧总结

一、 从主键说起CREATETABLE BingoT1 ( id INTIDENTITY(1, 1), NAMENVARCHAR(10),--姓名 IdentityNo VARCHAR(18),--身份证号码 LogDate DATETIMEDEFAULT(GETDATE()),--录入日期 PRIMARYKEY( id )--主键约束...

Oracle 时间差计算

两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: ROUND(TO_NUMBER(END_DATE - START_DATE)) 小时: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24) 分钟: ROUND(TO_NUMBER(END_DA...

select 无限级联动。省市县三级联动。jquery插件

   /*省市县 三级联动, 后台提取json数据<script src="http://t.zoukankan.com/res/PCASelect.js" type="text/javascript"></script><script type="text/javascript">    $(document).r...

oracle 排序后分页查询

demo: select * from ( select * from DEV_REG_CFG_CAMERA where 1 = 1 order by unid asc) where rownum < 3001 minus select * from ( select * from DEV_REG_CFG_CAMERA where 1 = 1 ord...

select 下拉框的样式改变

最近在做地图遇到一个很有意思的事情,就是select下拉框的样式改变 /*第一种,改变下拉框样式*/ select { /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/ border: solid 1px #000; /*很关键:将默认的select选择框样式清除*/ appearance:none; -moz-appearance...