selenium自动化入门

1、chromedriver下载
http://npm.taobao.org/mirrors...
需要根据chrome当前版本(chrome://version/)下载对应的driver,下载好的driver放到你的python安装根目录中
下面的代码简单的实现一个在百度首页进行搜索的功能

from selenium import webdriver
import time

driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_id('kw').send_keys('mytest')
driver.find_element_by_id('su').submit()
time.sleep(20)
driver.close()

2、搜索元素
find_element_by_name方法返回第一个与name属性值匹配的元素

3、unittest中的setUp和tearDown方法优化方案

setUp()和tearDown()方法为每个测试方法都创建了一个实例,并且在每个test__方法执行结束后都要关闭实例。这样会极大影响测试效率,如何让各个测试方法共用一个浏览器实例。
由于我测试的系统中,每个测试用例都会重新创建一个浏览器实例,每次都需要重复输入账号密码,我们使用setUpClass()方法和tearDownClass()方法及@classmethod标识来替换setUp和tearDown。这两个方法使我们可以在类级别来初始化数据,替代了方法级别的初始化,这样各个测试方法就可以共享这些初始化数据
@classmethod
def setUpClass(self):
    self.driver = webdriver.Chrome()
    self.driver.implicitly_wait(30)
    self.driver.maximize_window()
    self.driver.get("xxxxx")
    self.driver.find_element_by_xpath('//*[@id="username"]').send_keys('xxxx')
    self.driver.find_element_by_xpath('//*[@id="password-email"]').send_keys('xxxx')
    self.driver.find_element_by_id('emailLogin').click()

@classmethod
def tearDownClass(self):
    self.driver.quit()

4、如何运行多个测试测试用例集?
我们有两个测试用例集Mytest和Mytest1,需要加到一个测试套件中,需要使用TestSuite,TestLoader和TextTestRunner

from test import MyTest
from test1 import MyTest1
import unittest

mytest=unittest.TestLoader().loadTestsFromTestCase(MyTest)
mytest1=unittest.TestLoader().loadTestsFromTestCase(MyTest1)

smoketest=unittest.TestSuite([mytest,mytest1])
unittest.TextTestRunner(verbosity=2).run(smoketest)

5、如何生成好看的测试报告
原生的HtmlTestRunner生成的测试报告视觉上没有那么好看,那么我们如何生成好看的测试报告。可以搜索Wai Yip Tung编写的HtmlTestRunner,可以看到生成的测试报告美观很多
selenium自动化入门_第1张图片
持续学习与更新中......

你可能感兴趣的:(python,selenium)