Selenium学习笔记(一)-创新互联

不过多的介绍Selenium的历史以及应该使用哪个版本进行测试了。这只是我的学习笔记,方便以后回顾新的知识。Selenium学习笔记(一)

Selenium的命令—Selenese

Selenese---Selenium提供的可以进行全面的Web应用测试的命令的总称。可以通过http://release.seleniumhq.org/selenium-core/1.0.1/reference.html 查询。

成都创新互联公司专业为企业提供桑珠孜网站建设、桑珠孜做网站、桑珠孜网站设计、桑珠孜网站制作等企业网站建设、网页设计与制作、桑珠孜企业网站模板建站服务,十年桑珠孜做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

该命令主要有三种子类型,Actions、Accessors和 Assertions:

  1. 1. Actions决定Selenium工具怎样操作Web系统,如:点击某个链接和选择某个下拉选项,若一个Action执行失败或发生错误,当前测试被终止执行。
  2. 2. Accessors检查当前系统状态,并将结果存放在变量中。如: storeTitle 命令。它们也被用来自动产生断言
  3. 3. Assertions类似于Accessors,不过它们验证系统是否遵从于期望的表现。如:保持页面标题是…、验证多选框…被选中。
  4. Selenium Assertions 可以被归纳为三种模式: “assert”, “verify“,”waitFor“。
  5. assert失败,测试终止,verify失败,测试继续进行,并在日志中记录失败。通常使用assert确保测试在正确的页面上进行,使用verify验证表单数据,页签等。
  6. waitFor等待某些条件变真(在对Ajax类应用中特别管用),当条件为真时,它将立刻成功,在预设时间内(setTimeout)条件没有变成真,它将失败并停止测试执行。‘

附上测试gmail登录的脚本。应该可以精简许多,明天在研究了。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re

class Test(unittest.TestCase):
def setUp(self):
        self.driver= webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url= "https://accounts.google.com"
        self.verificationErrors= []
        self.accept_next_alert= True
    
def test_(self):
        driver= self.driver
        driver.get(self.base_url+ "/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1<mpl=default<mplcache=2")
# ERROR: Caught exception [Error: locator strategy either id or name must be specified explicitly.]   # ERROR: Caught exception [Error: locator strategy either id or name must be specified explicitly.]        driver.find_element_by_id("Email").send_keys("******")
        driver.find_element_by_id("Passwd").send_keys("******")
        driver.find_element_by_id("signIn").click()
# Warning: assertTextPresent may require manual changes   #self.assertRegexpMatches(driver.find_element_by_css_selector("BODY").text, r"^[sS]*Gmail[sS]*$")    
  def is_element_present(self, how, what):
try: self.driver.find_element(by=how, value=what)
except NoSuchElementException, e: return False
return True
    
def close_alert_and_get_its_text(self):
try:
            alert= self.driver.switch_to_alert()
if self.accept_next_alert:
                alert.accept()
else:
                alert.dismiss()
return alert.text
finally: self.accept_next_alert = True
    
def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()

本文题目:Selenium学习笔记(一)-创新互联
URL网址:http://myzitong.com/article/dspjhc.html