selenium也许是目前市面上最火的web自动测试工具了,说它是测试工具,其实只答对了一半,selenium分为1.X和2.X两个版本。1.X版本以selenium IDE为代表,主要用作firefox的插件,其原理是hook浏览器中的javascript来操作浏览器中的行为,因此其行为有一定的局限性。2.X版本则发展自webdriver项目,最初由google用来测试web application,后来和selenium合并改名为2.0,其特点是直接操作浏览器(目前已覆盖多平台多应用,包括IE, firefox, chrome, safari,甚至还有移动平台的android),因此可以比1.0实现更多的功能。特别要提出的是,2.X版本的selenium经过开源社区的多年的努力,其API已经基本覆盖所有的现代化语言(JAVA, C#, PYTHON, RUBY),所谓必有一款适合您。
这里以python为例简单说明一下selenium 2.0的基本使用方法:
1) 首先import selenium的库
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
import time
2)生成一个webdriver对象,并连接上sina微博
driver = webdriver.Firefox()
driver.get("")
3)在webdriver对象中找到用户名,密码输入框和确定按钮(用xpath方式获取,其他还有css元素等方法)
loginElement = driver.find_element_by_xpath("//input[@id='loginname']")
passwd_textElement = driver.find_element_by_xpath("//input[@id='password_text']")
passwdElement = driver.find_element_by_xpath("//input[@id='password']")
submitElement = driver.find_element_by_xpath("//a[@id='login_submit_btn']")
4) 在框中输入用户名密码并按确定健
loginElement.send_keys("myname@gmail.com")
loginElement.click()
passwd1Element.send_keys("mypasswd")
passwd2Element.send_keys("mypasswd")
submitElement.click()
5) 等待页面上出现特定的dom元素以完成测试(10秒超时)
try:
WebDriverWait(driver, 10).until(lambda driver : driver.find_element_by_xpath("//a[contains(@href, '')]"))
except NoSuchElementException:
assert 0, "can't find profile"
finally:
driver.quit()
阅读(839) | 评论(0) | 转发(0) |