zoukankan      html  css  js  c++  java
  • 轻松自动化---selenium-webdriver(python) (六)

     http://www.testclass.net/  测试教程网,专业的selenium 学习网站。

    本节知识点:

    操作对象:

    • · click 点击对象
    • · send_keys 在对象上模拟按键输入
    • · clear 清除对象的内容,如果可以的话

    WebElement  另一些常用方法:

    • · text  获取该元素的文本
    • · submit  提交表单
    • · get_attribute  获得属性值

    ======================================

     

    操作测试对象

     

    前面讲到了不少知识都是定位元素,定位只是第一步,定位之后需要对这个原素进行操作。

    鼠标点击呢还是键盘输入,这要取决于我们定位的是按钮还输入框。

    一般来说,webdriver中比较常用的操作对象的方法有下面几个

    · click 点击对象

    · send_keys 在对象上模拟按键输入

    · clear 清除对象的内容,如果可以的话

    在我们本系列开篇的第一个例子里就用到了到click 和send_skys ,别翻回去找了,我再贴一下代码:

    复制代码
    # coding = utf-8
    from selenium import webdriver
    
    browser = webdriver.Firefox()
    
    browser.get("http://www.baidu.com")
    browser.find_element_by_id("kw").clear()
    browser.find_element_by_id("kw").send_keys("selenium")
    browser.find_element_by_id("su").click()
    browser.quit()
    复制代码

    send_keys("XX")   用于在一个输入框里输入内容。

    click()   用于点击一个按钮。

    clear()   用于清除输入框的内容,比如百度输入框里默认有个“请输入关键字”的信息,再比如我们的登陆框一般默认会有“账号”“密码”这样的默认信息。clear可以帮助我们清除这些信息。

     

     

    WebElement  另一些常用方法:

     

    · text  获取该元素的文本

    · submit  提交表单

    · get_attribute  获得属性值

     

    text  

    用于获取元素的文本信息

    下面把百度首页底部的声明打印输出

    复制代码
    #coding=utf-8
    from selenium import webdriver
    
    import  time
    
    driver = webdriver.Firefox()
    driver.get("http://www.baidu.com")
    time.sleep(2)
    
    #id = cp 元素的文本信息
    data=driver.find_element_by_id("cp").text
    print data   #打印信息
    
    time.sleep(3)
    driver.quit()
    复制代码

    输出:

    >>> 
    ©2013 Baidu 使用百度前必读 京ICP证030173号 

     

     

    submit

    提交表单

    我们把“百度一下”的操作从click 换成submit :

    复制代码
    #coding=utf-8
    from selenium import webdriver
    
    import time
    
    driver = webdriver.Firefox()
    driver.get("http://www.baidu.com")
    
    driver.find_element_by_id("kw").send_keys("selenium")
    time.sleep(2)
    #通过submit() 来操作
    driver.find_element_by_id("su").submit()  
    
    time.sleep(3)
    driver.quit()
    复制代码

    这里用submit 与click的效果一样,我暂时还没想到只能用submit 不能用click的场景。他们之间到底有啥区别,知道的同学请留言告诉我。

     

    get_attribute

    获得属性值。

    这个函数的用法前面已经有出现过,在定位一组元素的时候有使用到它,只是我们没有做过多的解释。

    一般用法:

    复制代码
    select = driver.find_element_by_tag_name("select")
    
    allOptions = select.find_elements_by_tag_name("option")
    
    for option in allOptions:
    
        print "Value is: " + option.get_attribute("value")
    
        option.click()
    复制代码

    具体应用参考:

    定位一组元素:http://www.cnblogs.com/fnng/p/3190966.html

     

    小结:

    学到这里我们是不是已经撑握了不少知识,简单的操作浏览器,定位元素,操作元素以及打印一些信息。其实,我们前面的学习中大多使用的是WebElement 里的方法。

     

    WebElement的方法:

     

    一般来说,所有有趣的操作与页面进行交互的有趣的操作,都通过 WebElement 完成

    classselenium.webdriver.remote.webelement.WebElement(parent, id_)

    这个类代表HTML页面元素

     

    复制代码
    id_
    
    #当前元素的ID
    
     
    
    tag_name
    
    #获取元素标签名的属性
    
     
    
    text
    
    #获取该元素的文本。
    
     
    
    click()
    
    #单击(点击)元素
    
     
    
    submit()
    
    #提交表单
    
     
    
    clear()
    
    #清除一个文本输入元素的文本
    
     
    
    get_attribute(name)
    
    #获得属性值
    
     
    
    s_selected(self)
    
    #元素是否被选择
    
    Whether the element is selected.
    
    is_enabled()
    
    #元素是否被启用
    
     
    
    find_element_by_id(id_)
    
    find_elements_by_id(id_)
    
    #查找元素的id 
    
     
    
    find_element_by_name(name)
    
    find_elements_by_name(name)
    
    #查找元素的name
    
     
    
    find_element_by_link_text(link_text)
    
    find_elements_by_link_text(link_text)
    
    #查找元素的链接文本
    
     
    
    find_element_by_partial_link_text(link_text)
    
    find_elements_by_partial_link_text(link_text)
    
    #查找元素的链接的部分文本
    
     
    
    find_element_by_tag_name(name)
    
    find_elements_by_tag_name(name)
    
    #查找元素的标签名
    
     
    
    find_element_by_xpath(xpath)
    
    #查找元素的xpath
    
     
    
    find_elements_by_xpath(xpath)
    
    #查找元素内的子元素的xpath
    
     
    
    find_element_by_class_name(name)
    
    #查找一个元素的类名
    
     
    
    find_elements_by_class_name(name)
    
    #查找元素的类名
    
     
    
    find_element_by_css_selector(css_selector)
    
    #查找并返回一个元素的CSS 选择器
    
     
    
    find_elements_by_css_selector(css_selector)
    
    #查找并返回多个元素的CSS 选择器列表
    
     
    
    send_keys(*value)
    
    #模拟输入元素
    复制代码

     

     

     

     

    --------------------------

    学习更多selenium 内容:

     「功能测试自动化」汇总

  • 相关阅读:
    iBatis,第二次亲密接触
    微斯人,吾谁与归
    一个月了
    生命在于运动
    眼皮跳了好几天
    往返
    中病毒,学习批处理

    爱如潮水
    今天夏至
  • 原文地址:https://www.cnblogs.com/Raul2018/p/9359042.html
Copyright © 2011-2022 走看看