浏览器的基本操作

浏览器的基本操作


选择浏览器: 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端自动化并生成报告

 

posted @ 2020-12-20 19:21  高登汗  阅读(464)  评论(0编辑  收藏  举报