龙空技术网

Webdriver之API详解(1)

测试架构师百里 210

前言:

当前大家对“webdriverpythonapi”大概比较关注,朋友们都需要知道一些“webdriverpythonapi”的相关资讯。那么小编也在网上汇集了一些对于“webdriverpythonapi””的相关文章,希望小伙伴们能喜欢,兄弟们快快来学习一下吧!

前言

Webdriver API详解,基于python3,unittest框架,driver版本和浏览器自行选择。 本内容需要对python3的unittest框架有一个简单的了解,这里不再赘述,不了解的同学自己百度了解一下就可以了。废话不多说直接进入正题!

一、简单代码框架模板

 1 from selenium import webdriver 2 import unittest 3  4 class MyTest(unittest.TestCase): 5  6     def setUp(self): 7         self.driver = webdriver.Chrome() 811     def testFunc(self): # 后面所有的实例代码直接替换这个函数或者直接在代码中添加函数即可12         pass13     def tearDown(self):14         self.driver.quit()15 16 17 if __name__ == '__main__':18     unittest.main()
二、访问某个网址

目的:打开指定网址

测试地址:https:

调用API实例代码

 1     def testOpenBaiduUrl(self): 2         ''' 3         1.访问具体地址 4         :return: 5         ''' 6         baseUrl = '; 7         baseTitle = '百度一下' 8         self.driver.get(baseUrl)# 访问百度的网址 9         currTitle = self.driver.title # 获取当前页面的标题10         self.assertIn(baseTitle, currTitle, msg='页面跳转失败') # 断言
三、网页的前进,后退和刷新页面

目的:模拟浏览器的前进和后退功能

测试地址:

调用API实例代码

 1     def testBackForwardRefresh(self): 2         ''' 3         前进,后退,刷新当前页面 4         :return: 5         ''' 6         baseBaiduUrl = '; 7         baseSogouUrl = '; 8         self.driver.get(baseBaiduUrl) 9         self.driver.get(baseSogouUrl)10         self.driver.back() # 后退11         print(self.driver.current_url)12         self.driver.forward() # 前进13         print(self.driver.current_url)14         self.driver.refresh() #刷新页面
四、操作浏览器窗口位置

目的:窗口最大化,获取浏览器位置坐标,设置浏览器窗口位置

测试地址:

调用API实例代码

 1     def testWindow(self): 2         ''' 3         窗口最大化,获取当前窗口的位置,设置当前窗口的位置 4         :return: 5         ''' 6         baseBaiduUrl = '; 7         self.driver.get(baseBaiduUrl) 8         position = self.driver.get_window_position()  # 获取当前窗口的位置坐标 9         print('当前窗口的横坐标为{}'.format(position['x']))10         print('当前窗口的纵坐标为{}'.format(position['y']))11         self.driver.set_window_position(400, 200) # 设置窗口的位置12         print('设置后的窗口的位置坐标:{}'.format(self.driver.get_window_position()))13         self.driver.maximize_window() #窗口最大化
五、操作浏览器窗口的大小

目的:获取当前窗口的大小,设置当前窗口的大小

测试地址:

调用API实例代码

 1     def testWindowSize(self): 2         ''' 3         获取当前窗口的大小,设置当前窗口的大小 4         :return:  5         ''' 6         baseBaiduUrl = '; 7         self.driver.get(baseBaiduUrl) 8         #获取当前窗口的大小 9         windowSize = self.driver.get_window_size('current')10         print('当前窗口的宽为{}'.format(windowSize['width']))11         print('当前窗口的高为{}'.format(windowSize['height']))12         #设置当前窗口的大小13         self.driver.set_window_size(width=200, height=400, windowHandle='current')14         print(self.driver.get_window_size('current'))
六、获取当前页面的Title属性值

目的:获取百度页面的title属性值

测试地址:

调用API实例代码

 1  def testGetBaiduTitle(self): 2         ''' 3         获取页面的title属性值 4         :return:  5         ''' 6         baseBaiduUrl = '; 7         self.driver.get(baseBaiduUrl) 8         bdTitle = self.driver.title # 获取百度页面的title属性值 9         print(bdTitle)10         self.assertEqual(bdTitle,'百度一下,你就知道',msg='页面title不正确'
七、获取页面的url地址与页面源码

目的:获取百度页面的地址与源码

测试地址:

调用API实例代码

 1     def testGetBaiduUrlSourceCode(self): 2         ''' 3         获取页面的url和页面源码 4         :return: 5         ''' 6         baseBaiduUrl = '; 7         self.driver.get(baseBaiduUrl) 8         bdUrl = self.driver.current_url # 获取当前页面的url地址 9         print(bdUrl)10         self.assertEqual(bdUrl,';,msg='当前页面url不正确')11         sourceCode = self.driver.page_source # 获取当前页面的源码v 12         print(sourceCode)
八、获取与切换浏览器窗口句柄

目的:获取当前窗口句柄,获取所有窗口句柄,句柄之间切换

测试地址:

调用API实例代码

 1     def testGetwindowHandle(self): 2         ''' 3         获取当前页面的句柄,切换窗口 4         :return: 5         ''' 6         import time 7         baseBaiduUrl = '; 8         self.driver.get(baseBaiduUrl) 9         self.driver.maximize_window()10         # 获取当前窗口句柄11         current_handle = self.driver.current_window_handle12         print(current_handle)13         #百度搜索框输入selenium并点击百度一下14         self.driver.find_element_by_id('kw').send_keys('selenium')15         self.driver.find_element_by_id('su').click()16         time.sleep(3)17         #点击selenium的百度百科连接18         self.driver.find_element_by_partial_link_text('百度百科').click()19         #获取所有窗口的句柄20         all_handles = self.driver.window_handles21         print(all_handles)22         #打印新窗口的句柄23         print(self.driver.window_handles[-1])24         for handle in all_handles:25             # 切换到新的窗口26             if handle != current_handle:27                 self.driver.switch_to.window(handle)28                 self.driver.find_element_by_link_text('元素硒的英文名').click()29                 # 返回到原来的窗口30                 self.driver.switch_to.window(current_handle)31                 sendKeys = self.driver.find_element_by_id('kw')32                 sendKeys.clear()33                 sendKeys.send_keys('python')
九、获取页面元素的基本信息

目的:获取页面某个元素tagname,size,text

测试地址

1     def testGetElementInfo(self):2 3         baseBaiduUrl = ';4         self.driver.get(baseBaiduUrl)5         self.driver.maximize_window()6         element = self.driver.find_element_by_xpath("//a[text()='新闻']")7         print('我的tag_name是{},我的text是{},我的size是{}'.format(element.tag_name,element.text,element.size))

输出:我的tag_name是a,我的text是新闻,我的size是{'height': 24, 'width': 26}

十、获取元素的CSS属性值

目的:获取百度输入框的CSS属性值

测试地址

 1     def testGetCssInfo(self): 2         ''' 3         获取元素的css属性值 4         :return:  5         ''' 6         baseBaiduUrl = '; 7         self.driver.get(baseBaiduUrl) 8         self.driver.maximize_window() 9         element = self.driver.find_element_by_id('kw')10         print(element.value_of_css_property('height'))# 获取搜索框的高11         print(element.value_of_css_property('width'))# 获取搜索框的宽12         print(element.value_of_css_property('font-family'))# 获取搜索框输入的字体

输出:

22px

500px

arial

十一、输入框输入指定内容,清空输入框中的内容

目的:百度输入框输入python并清空内容

测试地址

 1  def testInputClear(self): 2         ''' 3         获取元素的css属性值 4         :return: 5         ''' 6         import time 7         baseBaiduUrl = '; 8         self.driver.get(baseBaiduUrl) 9         self.driver.maximize_window()10         element = self.driver.find_element_by_id('kw')11         element.send_keys('python')# 输入指定内容12         time.sleep(5)13         element.clear() # 清空输入框
总结

以上共10个实例,涉及到API有get(), send_keys(),clear(),text,maximize_window(),current_url, back(), forword(), refresh(), get_window_position(), get_window_size(), set_window_position, title, current_window_handle, window_handles, value_of_css_property()等十几个方法,都是实际工作中会经常会用到的,希望对大家有所帮助,后续会陆续更新其他的API用法。

今天的文章就到这里了哟,喜欢的小伙伴可以点赞收藏加关注哟。

标签: #webdriverpythonapi