浏览器的基本操作
浏览器的基本操作
选择浏览器: driver = webdriver.Firefox()
打开url: driver.get(self.base_url + " www.baidu.com")
前进/后退: driver.forward()/driver.back()
刷新: driver.refresh()
最大化:browser.maximize_window()
返回当前页面标题:print(driver.title)
返回当前页面url:print(driver.current_url)
返回当前浏览器的所有窗口:driver.window_handles
返回当前浏览器的窗口句柄:driver.current_window_handle
选择窗口: driver.switch_to_window(“window_name”)
对话框操作: driver.switch_to_alert() #选择窗口对象
#浏览器最大化
driver.maximize_window()
#设置浏览区宽高
driver.set_window_size(480, 800)
截取当前页面: driver.get_screenshot_as_file("C:/Users/Administrator/Desktop/selenium/baidu.png")
关闭浏览器: driver.quit()/driver.close()
演示代码
from selenium import webdriver import time import unittest import HTMLTestRunner class TestBaidu(unittest.TestCase): #override metherd 重写了父类方法 #打开百度 #初始化 def setUp(self): self.db = webdriver.Chrome() self.db.get("http://baidu.com") self.db.maximize_window() #百度搜索的操作 测试用例1 def test_seach(self): input = self.db.find_element_by_id("kw") #对输入库的操作 input.send_keys("纪昀") #定位百度按钮元素 btn = self.db.find_element_by_id("su") #对按钮进行操作 btn.click() # 百度设置每页展示条数 测试用例2 def test_baidu_set(self): db = self.db db.get("http://baidu.com/gaoji/preferences.html") RequType = db.find_element_by_name("NR") RequTypeOptionAll = RequType.find_elements_by_tag_name("option") for values in RequTypeOptionAll: print(values.get_attribute("value")) print(values.text) if "50" in values.text: values.click() break time.sleep(3) # 保存设置 db.find_element_by_xpath("/html/body/form/div/input").click() time.sleep(2) db.switch_to_alert().accept() # db.switch_to.alert #from .Test3 import jdbc #def test_baidu_a(self): #登录 测试用例3 # t = jdbc() # list =t.select() # for i in list: # # db = self.db # db.find_element_by_name("tj_login").click() # time.sleep(3) # db.find_element_by_id("TANGRAM__PSP_11__footerULoginBtn").click() # # name = db.find_element_by_name("userName") # name.send_keys("admin") # pwd = db.find_element_by_id("TANGRAM__PSP_11__password") # pwd.send_keys("123") # db.find_element_by_id("TANGRAM__PSP_11__submit").click() #关闭浏览器 #结束的时候 def tearDown(self): self.db.close() if __name__ == '__main__': #创建测试用例容器 testlist = unittest.TestSuite() #将用例添加到容器中 testlist.addTest(TestBaidu("test_seach")) #testlist.addTest(类名("函数名")) testlist.addTest(TestBaidu("test_baidu_set")) #创建测试报告 #创建文件目录 file = "D:\\aaa\\baidu.html" fle = open(file,"wb") #生成测试报告的时候用的是二进制文件wb rb wb 以进制的方式进行读写文件 # 定义测试报告,stream定义报告所写入的内容,title为报告标题,description为报告的说明与描述 runner = HTMLTestRunner.HTMLTestRunner( stream=fle, title=u'百度搜索测试报告', description=u'用例执行情况:') #将测试报告和用例容器关联在一起 runner.run(testlist) # # test = TestBaidu() # test.setUp() # test.seach() # test.teardown() # # # test.setUp() # test.test_baidu_set() # test.teardown() # python+selenium+unittest+HTMLTestRunner+mysql 进行web端自动化并生成报告 #selenium 实现页面元素的定位 #unittest 实现将测试用例并入到页面中 执行类似单元自动化的概念 # python+appnium+HTMLTestRunner 进行app端自动化并生成报告