webdriver还是很有意思的,之前用过Ruby的watir的自动化测试框架,感觉selenium的这套框架更好一些,很容易就可以上手。我虽然不做自动化这块,不过先玩玩再说,多学点东西总之还是好一些的。
1 # coding:utf-8 2 import time 3 from selenium import webdriver 4 import unittest 5 from pythontest.commlib.baselib import * 6 ?7 ?8 #引用封装后的日志系统 9 log = TestLog().getlog()10 class BaiBu(unittest.TestCase):11 ????u‘‘‘【百度.类】‘‘‘12 ????def setUp(self):13 ????????self.browser = webdriver.Firefox()14 ????????self.browser.get("http://www.baidu.com")15 ????????self.browser.implicitly_wait(10)16 ????????#self.base = Screen(self.browser)17 18 ????def tearDown(self):19 ????????self.browser.quit()20 21 ????def test_search(self):22 ????????log.info("搜索前title:" + self.browser.title.encode("utf-8") ) ?#得到的title中文编码格式,非UTF-8格式,需要转码23 ????????#输入关键字,关键字任意24 ????????self.browser.find_element_by_class_name("s_ipt").send_keys(u"北京尚拓云测 软件测试外包公司")25 ????????self.browser.find_element_by_class_name("s_btn").submit() ??????#此处class属性有三个值,中间使用空格隔开,取其中一值26 ????????#点击搜索结果27 ????????self.browser.find_element_by_xpath(".//*[@id=‘2‘]/h3/a").click() ???????#根据xpath识别元素28 ????????time.sleep(3)29 ????????log.info("结果页:" + self.browser.title.encode("utf-8") ) ?????#转码utf-830 ????????self.assertIn("软件测试",self.browser.title.encode("utf-8")) ??????#断言,转码31 ????????time.sleep(5)32 ????????‘‘‘接下来的工作,是获取新页面的handler,以及循环点击搜索结果‘‘‘33 34 if __name__ == "__main__":35 ????unittest.main()
明天有时间再优化,根据id进行随机数选取。可以参考我之前Ruby的一个自动化测试框架:http://www.cnblogs.com/zhuque/archive/2012/11/30/2796866.html
selenium-webdriver循环点击百度搜索结果以及获取新页面的handler
原文地址:https://www.cnblogs.com/zhuque/p/8322275.html