本节知识点:
操作对象:
. 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)
- # 模拟输入元素
来源: http://www.bubuko.com/infodetail-2697984.html