selenium webdriver--自动化学习(1)

Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具,它提供了一套友好的API,与Selenium 1(Selenium-RC)相比,Selenium 2的API更容易理解和使用,其可读性和可维护性也大大提高。Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序,也不必像Selenium 1那样需要先启动服务。

另外,二者所采用的技术方案也不同。Selenium 1是在浏览器中运行 JavaScript来进行测试,而Selenium 2则是通过原生浏览器支持或者浏览器扩展直接控制浏览器。

Selenium 2针对各个浏览器而开发的,它取代了嵌入到被测Web应用中的 JavaScript。与浏览器的紧密集成,支持创建更高级的测试,避免了JavaScript安全模型的限制。除了来自浏览器厂商的支持,Selenium 2 还利用操作系统级的调用模拟用户输入。WebDriver 支持

  • Firefox (FirefoxDriver)

  • IE(InternetExplorerDriver)

  • Opera(OperaDriver)

  • Chrome (ChromeDriver)

  • 以及safari(SafariDriver)

它还支持Android(Selendroid)和iPhone(Appium)的移动应用测试。此外,Selenium 2还包括基于HtmlUnit的无界面实现,称为HtmlUnitDriver,和基于webkit的无界面浏览器phantomjs。Selenium 2 API可以通过

  • Java

  • C#

  • PHP

  • Python

  • Perl

  • Ruby

等编程语言访问,支持开发人员使用他们常用的编程语言来创建测试。




小试牛刀:
自动化登录火狐浏览器,使用百度,搜索需要的关键字

环境准备:需要先安装selenium               pip install selenium

#coding:utf8

from selenium import webdriver
import  time  #调入time函数
browser = webdriver.Firefox()                   #使用火狐浏览器
browser.get("http://www.baidu.com")      #需要访问的URL地址,用百度进行搜索
#time.sleep(0.3)  #休眠0.3秒
browser.find_element_by_id("kw").send_keys("python")      #搜索框中输入python,如果是中文需要在前面加u"中国"
browser.find_element_by_id("su").click()                                #提交
time.sleep(3)  # 休眠3秒
browser.quit()                                                                             #退出浏览器


使用上面的程序可以自动化登录火狐浏览器,搜索指定关键字,注意:火狐浏览器版本不要太高,否则会出现驱动的问题,比如跳转到了URL地址输入框,但是一直无法输入,建议更换低一点版本的火狐浏览器

最常用的命令:


Commmand 描述
driver.get("URL") 导航到应用程序
element.sendKeys("inputtext") 输入一些文本输入框
element.clear() 从输入框清空内容
select.deselectAll() 这将取消选择页面上的第一个选择所有选项:
select.selectByVisibleText("some text") select the OPTION with the input specified by the user.
driver.switchTo().window("windowName") Moving the focus from one window to another
driver.switchTo().frame("frameName") swing from frame to frame
driver.switchTo().alert() Helps in handling alerts
driver.navigate().to("URL") Navigate to the URL
driver.navigate().forward() To Navigate forward
driver.navigate().back() To Navigate back
driver.close() Closes the current Browser associated with the driver
driver.quit() Quits the driver and closes all the associated window of that driver.
driver.refresh() Refreshes the current page.


你可能感兴趣的:(自动化测试,python,自动化,测试)