51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1644|回复: 2
打印 上一主题 下一主题

selenium自动化测试入门 操作元素对象

[复制链接]
  • TA的每日心情
    无聊
    2024-9-27 10:07
  • 签到天数: 62 天

    连续签到: 1 天

    [LV.6]测试旅长

    跳转到指定楼层
    1#
    发表于 2018-2-7 16:20:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
         一、元素的常用操作
         element.click() # 单击元素;除隐藏元素外,所有元素都可单击
         element.submit() # 提交表单;可通过form表单元素提交表单
         element.clear() # 清除元素的内容;如果可以的话
         element.send_keys(‘需要输入的内容’) # 模拟按键输入;只针对支持输入的元素

         注意:send_keys() 输入的内容必须为字符串

         搜狗查询实例:
    1. from selenium import webdriver
    2. import time

    3. driver = webdriver.Chrome()
    4. driver.maximize_window()  # 最大化
    5. driver.get(r'https://www.sogou.com/')  # 打开网页
    6. driver.find_element_by_id('query').send_keys('selenium')  # 搜索框输入selenium
    7. time.sleep(2)  # 等待3秒
    8. driver.find_element_by_id('query').clear()  # 清除搜索框内容
    9. time.sleep(2)
    10. driver.find_element_by_id('query').send_keys('selenium')  # 重新输入内容
    11. driver.find_element_by_id('sf').submit()  # 提交搜索框的表单
    12. # driver.find_element_by_id('stb').submit()  #  提交按钮也可提交表单,单击按钮也可以
    13. time.sleep(2)
    14. driver.quit()  # 关闭浏览器
    复制代码
            注意:submit() 提交表单,可以是提交按钮,也可以是表单元素,也可以是输入框元素

             二、元素的常用方法

             element.location 返回元素的坐标字典(相对于网页左上角0,0开始)
             element.text 获取元素的文本,页面上看得到的文本
             element.get_attribute('属性名称') 获得元素的属性 强调“有”
             element.get_property('属性名称') 获得元素的固有属性值 强调“专”
             element.is_displayed() 返回元素的结果是否可见,有些元素肉眼可见,但是他是隐藏的

             示例:
    1. from selenium import webdriver
    2. import time

    3. driver = webdriver.Chrome()
    4. driver.maximize_window()  # 最大化
    5. driver.get(r'https://www.sogou.com/')  # 打开网页
    6. driver.find_element_by_id('query').send_keys('selenium')  # 搜索框输入selenium
    7. element=driver.find_element_by_id('query')
    8. print('搜索框的内容为:',element.get_attribute('value'))
    9. print('搜索框的class属性:',element.get_attribute('class'))
    10. print('搜索框的type属性:',element.get_attribute('type'))
    11. print('搜索框的坐标位置:',element.location)
    12. print('搜索框是否可操作:',element.is_displayed())
    13. time.sleep(2)
    14. text = driver.find_element_by_class_name('erwm-box').text  # 获取二位码的文本
    15. print('底部二维码的文本为:',text)
    16. time.sleep(2)
    17. driver.quit()  # 关闭浏览器
    复制代码
          1、element.location 获取元素的坐标位置

           对于已加载到浏览器的底部元素,操作元素时现在chrome无法自动拖动滚动条,需要获取元素位
    置后,采用js拖动滚动条到相应位置采用操作元素。

           2、element.text 获取元素的文本
    1. <div class="erwm-box">
    2.        <span class="ewm"></span>
    3.        <div class="erwx">
    4.            <p>搜狗搜索APP</p>
    5.            <p class="p2">搜你所想</p>
    6.        </div>
    7.    </div>
    复制代码
           如上,我们定位class="erwm-box"元素,获取到的文本是 [搜狗搜索APP 搜你所想] ,也就是界
    面上能看到的文字内容。输入框除外(输入框的值是存储在value属性中),只要是界面上的文本内容
    都可以获取。

            多用于校验点。
            3、element.get_attribute('属性名称') 获取对应的属性值,强调“有”

            <input type="text" class="sec-input" name="query" id="query" maxlength="100" autocomplete
    ="off">如上搜索输入框的属性有type、class、name、id、maxlength、autocomplete;我都可以通过
    get_attribute()获取到他的值,因为他’有’。value是特殊的属性,输入框,单项按钮,多选按钮多具有
    改属性。


            4、element.get_property('属性名称') 获得元素的固有属性值,强调“专”它与get_attribute()
    差别,get_property()是获取元素的固有属性。我们所有的元素都有特定固有属性,如id、type、
    value等。当使用get_attribute()无法获取到属性的值时,可使用get_property()。


            5、element.is_displayed() 判定改元素是否可见当我们定位到了元素,但是无法操作时,可以看看
    他是否可见,不可见不一定就是在界面上消失了。


            6、其他方法element.size 元素的大小element.is_enabled() 元素是否可用element.is_selected() 元
    素是否被选中,用于检测复选框或单项按钮是否被勾选




    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    该用户从未签到

    3#
    发表于 2018-5-14 19:31:12 来自手机 | 只看该作者
    lz 你好,有c/c++基础,接触过python和mysql,没学过测试工具,想做自动化测试,应该学些什么呢?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 00:17 , Processed in 0.063201 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表