定位元素只是第一步,操作元素才能做成自动化测试。
webdriver 中比较常用的操作元素的方法有下面几个:
- clear 清除元素的内容,如果可以的话
- send_keys 在元素上模拟按键输入
- click 单击元素
- submit 提交表单
以百度搜索为例:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://ww.baidu.com')
driver.maximize_window()
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_xpath("//*[@id='kw']").submit()
clear() 用于清除输入框的默认内容
比如登录框内一般默认会有“账号”“密码”等提示信息,如果直接输入内容,和可能会与输入框的默认提示信息拼接,从而造成输入信息的错误;这时clear()将变得非常有用。
send_keys("xx") 用于在一个输入框里输入xx 内容
python 是个容易出现编码问题的语言,有时候当我们在send_keys()方法中输入中文时,然后脚本在运行时就报编码错误,这个时候我们可以在脚本开头声明编码为utf-8,然后在中文字符的前面加个小u 就解决了(表示转成python Unicode 编码):
#coding=utf-8
send_keys(u"中文内容")
click() 用于单击一个按钮
其实click()方法不仅仅用于点击一个按钮,可以单击任何可以点击的元素,文字/图片连接,按钮,下拉按钮等。
submit() 提交表单
从上面有例子,我们可看到可以使用submit()方法来代替click()对输入的信息进行提交,在有些情况下两个方法可以相互使用;submit()要求提交对象是一个表单,更强调对信息的提交。click()更强调事件的独立性。(比如,一个文字链接就不能用submit()方法。)