Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101825
  • 博文数量: 45
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 368
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-21 16:28
文章分类

全部博文(45)

文章存档

2014年(45)

我的朋友

分类: WINDOWS

2014-05-19 15:43:13

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) |
给主人留下些什么吧!~~