zoukankan      html  css  js  c++  java
  • Python+Selenium自动化测试教程连载(3)

    上一期介绍了自动化测试

    Python+Selenium元素定位,这期我们讲讲元素操作。

    常用元素操作

    在一个web网站,我们经常做的操作,无非是点击,输入这些。

    输入一般是对输入框输入。

    点击操作多一些:点击按钮、超链接,点击选择下拉框、单选框、复选框等。

    那么通过selenium工具是如何实现这些操作的呢?

    1.元素的操作方法

     

    Web元素--按钮,对应HTML代码如下:

    <input type="submit" id="su" value="百度一下" class="bg s_btn">
    

    对按钮进行点击操作---click方法:

    element = driver.find_element_by_id("su")
    
    element.click()
    

    或者把两行干脆写到一起:

    driver.find_element_by_id("su").click()
    

    2 .超链接点击操作

     

    Web元素--超链接,对应HTML代码如下:

    <href="https://www.baidu.com/link?VLR9Cj1tWWDKHS&wd=&eqid=a8ced0f300063f7d000000065e18377f" target="_blank"><em>自动化</em>_百度百科</a>
    

    对超链接进行点击操作---click方法:

    element = driver.find_element_by_link_text("自动化_百度百科")
    
    element.click()
    

    3 .输入框输入操作

     

    Web元素--输入框,对应HTML代码如下:

    <input id="kw" name="wd" value="" maxlength="255" autocomplete="off">
    

    对输入框做输入

    ------clear与send_keys()方法。

    为保证效果,先清空输入框,再输入内容:

    element = driver.find_element_by_link_text("kw")
    
    element.clear()
    
    element.send_keys("python")
    

    4 .单选框选择操作

     

    Web元素--输入框,对应HTML代码如下:

    <div id="sex"><input id="input1" type="radio" name="sex"> <label>男</label>
    
          <input id="input2" type="radio" name="sex"><label>女</label></div>
    

    点击选择男,再改为女:

    ele = driver.find_element_by_id("input1")
    
    ele.is_selected()   # False,选项未被选中
    
    ele.click()         # 点击选择男
    
    ele.is_selected()  # True,选项被选中
    
    driver.find_element_by_id("input2").click() # 选择女
    
    ele.is_selected()  # False,选项取消选中
    

    * 如何取消单选框的选择? ----选择其他选项,当前选项自动取消选择

    5 .复选框选择操作

     

    Web元素--输入框,对应HTML代码如下:

    <div id="checkbox">兴趣爱好:
    
      <input type="checkbox" name="chbox1">爬山
    
    <input type="checkbox" name="chbox2">打球
    
     <input type="checkbox" name="chbox3">阅读</div>
    

    点击选择栏,选择读书和爬山:

    ele = driver.find_element_by_name("chbox1")
    
    print(ele.is_selected())   # False,选项未被选中
    
    ele.click()         # 点击选择
    
    print(ele.is_selected())  # True,选项被选中
    
    ele.click()         # 再次点击取消选择
    
    print(ele.is_selected())  # False,选项取消选中
    

    6 .借助Select对象完成下拉框操作

     

    出生日期:<select name="birthdayYear"><option value="1980">1980</option><option value="1981">1981</option>...... </select>

    下拉框的处理有两种方式一种是借助selenium的Select对象,一种是直接操作

    ele = driver.find_element_by_name("birthdayYear")
    
    select = Select(ele)   #创建select对象
    
    选择对应的选项:
    
    select.select_by_value(self, value)   #根据value选择
    
    select.select_by_index(self, index);  #根据索引选择,0,1,2
    
    select.select_by_visible_text(self, text); #根据text选择
    
     
    
    取消选择(针对多选下拉框):
    
    select.deselect_all(self);     #取消全部选中项
    
    select.deselect_by_value(self, value);
    
    获取信息:
    
    select.first_selected_option;  #获取第一个被选中项
    
    select.all_selected_options;   #获取所有的选中项
    
    select.options;                 #获取所有选项
    
    select.is_multiple;             #是否多选下拉框
    

    7.通过点击方法实现下拉框选择:

    ele = driver.find_element_by_xpath("//select/option[2]")
    
    ele.click()    #点击选择第二个选项
    
    print(ele.is_selected())
    

    通用元素操作

    我们在网站上做的操作是非常有限的,模拟这些操作也比较简单。

    除了模拟人工操作,有时需要做条件判断或者结果验证,那么需要的操作更多:

    1 .获取元素属性

    假设我们要操作的元素对应HTML代码如下:

    <input id="kw" name="wd" value="" maxlength="255" autocomplete="off">
    

    如何获取这个input元素的class属性的值呢?

    首先我们需要先找到它,通过driver对象的find方法进行元素定位:
    
    element = driver.find_element_by_id("kw")
    
    定位到元素后,通过get_attribute方法进行属性值获取:
    
    text = element.get_attribute("class") # 获取class属性值
    
    print(text)     # 输出属性值
    
    Print(element.text)   # 获取元素的文本内容
    

    当然这里,这个input的value值

    maxlength值都可以通过类似方式获取

    * webElement

    对象还有个类似方法get_property(),两者使用差不多,其中property使用范围小些。在区分不出应该用哪个的情况下,推荐使用前者。

    2 .获取元素状态

    <input id="kw" name="wd" value="" maxlength="255" autocomplete="off">

    还是这个元素,我们想要了解这个元素是否正常展示,是否允许用户操作。

    首先我们需要先找到它,通过driver对象的find方法进行元素定位:
    
    element = driver.find_element_by_id("kw")
    
    定位到元素后,通过is_方法进行状态判断:
    
    element.is_displayed()  # 获取元素是否正常展示
    
    element.is_enabled()  # 元素是否允许操作
    
    Element.is_selected()  # 单选框复选框元素是否被选中
    如果您看了本篇博客,觉得对您有所收获,请点击右下角的[推荐]. 如果您想转载本博客,请注明出处, 如果您对本文有意见或者建议,欢迎留言. 感谢您的阅读,请关注我的后续博客!
  • 相关阅读:
    方法重载与方法重写的概念和区别(转载)
    sql exist 和not exist(转载)
    SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思 sql server 2005 2008
    sql中的isnull
    sql中unique和distinct
    SQLServer中的Merge使用
    SQL Server系统表sysobjects介绍与使用
    sql select as
    存储过程SET XACT_ABORT ON
    SQL Server之存储过程基础知识
  • 原文地址:https://www.cnblogs.com/chuansinfo/p/13710763.html
Copyright © 2011-2022 走看看