Selenium2+Python:Webdriver API速记手册

  由于web自动化常常需要控制浏览器行为和操作页面元素,相关函数又比较多,于是再此记下一份Webdriver API查阅文档以备不时之需。

  参考:虫师《Selenium2自动化测试实战》,和http://selenium-python.readthedocs.io/api.html

1 #coding=utf-8
2 from selenium import webdriver
3 driver=webdriver.Firefox()
4 driver.get(‘http://www.baidu.com/‘)
5 print ‘driver attributes:‘
6 print dir(driver)
7 Elem=driver.find_element_by_id(‘kw‘)
8 print ‘WebElement attributes:‘
9 print dir(Elem)

  输出结果:

driver attributes:
[‘__class__‘, ‘__delattr__‘, ‘__dict__‘, ‘__doc__‘, ‘__format__‘, ‘__getattribute__‘, ‘__hash__‘, ‘__init__‘, ‘__module__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘__weakref__‘, ‘_file_detector‘, ‘_is_remote‘, ‘_mobile‘, ‘_switch_to‘, ‘_unwrap_value‘, ‘_wrap_value‘, ‘add_cookie‘, ‘application_cache‘, ‘back‘, ‘capabilities‘, ‘close‘, ‘command_executor‘, ‘create_options‘, ‘create_web_element‘, ‘current_url‘, ‘current_window_handle‘, ‘delete_all_cookies‘, ‘delete_cookie‘, ‘desired_capabilities‘, ‘error_handler‘, ‘execute‘, ‘execute_async_script‘, ‘execute_script‘, ‘file_detector‘, ‘file_detector_context‘, ‘find_element‘, ‘find_element_by_class_name‘, ‘find_element_by_css_selector‘, ‘find_element_by_id‘, ‘find_element_by_link_text‘, ‘find_element_by_name‘, ‘find_element_by_partial_link_text‘, ‘find_element_by_tag_name‘, ‘find_element_by_xpath‘, ‘find_elements‘, ‘find_elements_by_class_name‘, ‘find_elements_by_css_selector‘, ‘find_elements_by_id‘, ‘find_elements_by_link_text‘, ‘find_elements_by_name‘, ‘find_elements_by_partial_link_text‘, ‘find_elements_by_tag_name‘, ‘find_elements_by_xpath‘, ‘forward‘, ‘get‘, ‘get_cookie‘, ‘get_cookies‘, ‘get_log‘, ‘get_screenshot_as_base64‘, ‘get_screenshot_as_file‘, ‘get_screenshot_as_png‘, ‘get_window_position‘, ‘get_window_size‘, ‘implicitly_wait‘, ‘launch_app‘, ‘log_types‘, ‘maximize_window‘, ‘mobile‘, ‘name‘, ‘orientation‘, ‘page_source‘, ‘quit‘, ‘refresh‘, ‘save_screenshot‘, ‘service‘, ‘session_id‘, ‘set_page_load_timeout‘, ‘set_script_timeout‘, ‘set_window_position‘, ‘set_window_size‘, ‘start_client‘, ‘start_session‘, ‘stop_client‘, ‘switch_to‘, ‘switch_to_active_element‘, ‘switch_to_alert‘, ‘switch_to_default_content‘, ‘switch_to_frame‘, ‘switch_to_window‘, ‘title‘, ‘w3c‘, ‘window_handles‘]

  调用语法:driver.属性名(注:Some attributes are callable (or methods) and others are non-callable (properties),以下列出的均为方法属性)

  常用属性:

 1 driver.find_element_by_id(id_)                        #查找元素的id
 2 driver.find_element_by_name(name)                    #查找元素的name
 3 driver.find_element_by_link_text(link_text)           #查找元素的链接文本
 4 driver.find_element_by_partial_link_text(link_text)   #查找元素的链接的部分文本
 5 driver.find_element_by_tag_name(name)                 #查找元素的标签名
 6 driver.find_element_by_xpath(xpath)                   #查找元素的xpath
 7 driver.find_elements_by_xpath(xpath)                  #查找元素内的子元素的xpath
 8 driver.find_element_by_class_name(name)               #查找一个元素的类名
 9 driver.find_elements_by_class_name(name)              #查找元素的类名
10 driver.find_element_by_css_selector(css_selector)     #查找并返回一个元素的CSS 选择器
11 driver.find_elements_by_css_selector(css_selector)    #查找并返回多个元素的CSS 选择器列表
 1 driver.get(url)                          #浏览器加载url。
 2 driver.forward()                         #浏览器向前(点击向前按钮)
 3 driver.back()                            #浏览器向后(点击向后按钮)
 4 driver.refresh()                         #浏览器刷新(点击刷新按钮)
 5 driver.close()                           #关闭当前窗口,或最后打开的窗口。
 6 driver.quit()                            #关闭所有关联窗口,并且安全关闭session
 7 driver.maximize_window()                 #最大化浏览器窗口
 8 driver.set_window_size(宽,高)            #设置浏览器窗口大小
 9 driver.get_window_size()                 #获取当前窗口大小
10 driver.switch_to_window(窗口句柄)         #切换到新窗口
11 driver.switch_to_frame(id或name属性值)    #切换到新表单(同一窗口)。若无id或属性值,可先通过xpath定位到iframe,再将值传给switch_to_frame()
1 driver.get_screenshot_as_file(filename)           #窗口截图
2 driver.switch_to_alert()                          #警告框处理。处理JavaScript所生成的alert,confirm,prompt.
3 driver.implicitly_wait(秒)                 #隐式等待,通过一定的时长等待页面上某一元素加载完成。若提前定位到元素,则继续执行。若超过时间未加载出,则抛出NoSuchElementException异常
4 driver.execute_script(js)                         #调用js
5 driver.get_cookies()                              #获取当前会话所有cookie信息。
6 driver.get_cookie(cookie_name)                    #返回字典的key为“cookie_name”的cookie信息。
7 driver.add_cookie(cookie_dict)                    #添加cookie。“cookie_dict”指字典对象,必须有name和value值。
8 driver.delete_cookie(name,optionsString)         #删除cookie信息。
9 driver.delete_all_cookies()                       #删除所有cookie信息

  

输出结果: 

WebElement attributes:
[‘__class__‘, ‘__delattr__‘, ‘__dict__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__getattribute__‘, ‘__hash__‘, ‘__init__‘, ‘__module__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘__weakref__‘, ‘_execute‘, ‘_id‘, ‘_parent‘, ‘_upload‘, ‘_w3c‘, ‘clear‘, ‘click‘, ‘find_element‘, ‘find_element_by_class_name‘, ‘find_element_by_css_selector‘, ‘find_element_by_id‘, ‘find_element_by_link_text‘, ‘find_element_by_name‘, ‘find_element_by_partial_link_text‘, ‘find_element_by_tag_name‘, ‘find_element_by_xpath‘, ‘find_elements‘, ‘find_elements_by_class_name‘, ‘find_elements_by_css_selector‘, ‘find_elements_by_id‘, ‘find_elements_by_link_text‘, ‘find_elements_by_name‘, ‘find_elements_by_partial_link_text‘, ‘find_elements_by_tag_name‘, ‘find_elements_by_xpath‘, ‘get_attribute‘, ‘id‘, ‘is_displayed‘, ‘is_enabled‘, ‘is_selected‘, ‘location‘, ‘location_once_scrolled_into_view‘, ‘parent‘, ‘rect‘, ‘screenshot‘, ‘screenshot_as_base64‘, ‘screenshot_as_png‘, ‘send_keys‘, ‘size‘, ‘submit‘, ‘tag_name‘, ‘text‘, ‘value_of_css_property‘]

  调用语法:driver.find_element*.属性名(注:Some attributes are callable (or methods) and others are non-callable (properties),以下列出的均为方法属性)

  常用属性:

1 driver.find_element_by_*().clear()                   #清除文本
2 driver.find_element_by_*().send_keys(value)          #模拟键盘输入
3 driver.find_element_by_*().click()                   #单击元素,可以作用于按钮、链接、复选框、单选框、下拉框
4 driver.find_element_by_*().submit()                  #用于表单提交,应用范围不及click()广泛
5 driver.find_element_by_*().get_attribute(name)      #获得属性值
6 driver.find_element_by_*().is_displayed()           #返回元素结果是否可见(True 或 False)
7 driver.find_element_by_*().is_selected()           #返回元素结果是否被选中(True 或 False)
8 driver.find_element_by_*().find_element_by_*()       #定位元素,用于二次定位

补充:鼠标事件:perform()对所有鼠标事件进行存储,或者说是对所以操作都进行了提交

 #定位到要右击的元素
 element =driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div/div[3]/table/tbody/tr/td[2]")
 #对定位到的元素执行鼠标右键操作
 ActionChains(driver).context_click(qqq).perform()

 #定位到要双击的元素
 element =driver.find_element_by_id("submit")
 ActionChains(driver).double_click(qqq).perform()

  #定位元素的原位置
  element = driver.find_element_by_name("source")
  #定位元素要移动到的目标位置
  target =  driver.find_element_by_name("target")
  ActionChains(driver).drag_and_drop(element, target).perform()

  #定位鼠标悬停的元素
  element = self.find_element(*locator)
 ActionChains(self.driver).move_to_element(element).perform()
时间: 2024-10-08 10:03:57

Selenium2+Python:Webdriver API速记手册的相关文章

selenium2.0(WebDriver) API - 转载自:http://www.cnblogs.com/puresoul/p/3477918.html

1.1  下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guide:  http://seleniumhq.org/docs/ 官方API:  http://selenium.googlecode.com/git/docs/api/java/index.html 1.2.1  用webdriver打开一个浏览器 打开firefox浏览器: WebDriver driver

selenium2.0(WebDriver) API

1.1  下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guide:  http://seleniumhq.org/docs/ 官方API:  http://selenium.googlecode.com/git/docs/api/java/index.html 1.2.1  用webdriver打开一个浏览器 打开firefox浏览器: WebDriver driver

第三章 python webdriver API(三)——设置等待

"""" 设置等待时间 sleep():设置固定休眠时间.python的time包提供了休眠方法sleep(),导入time包就可以使用sleep()进行脚本的执行过程进行休眠 implicitly_wait():是webdriver提供的一个超时等待.隐的等待一个元素被发现,或一个命令完成. 如果超出了设置时间的则抛出异常. WebDriverWait():同样也是webdriver提供的方法.在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在, 如果超出

python学习-python webdriver API

#1.导入webdriver包 from selenium import webdriver #2.打开浏览器,打开网站 browser = webdriver.Firefox() browser.get("https://www.baidu.com") #3.浏览器最大化 browser.maximize_window() #4.自定义浏览器窗口大小 browser.set_window_size(700,800) #5.关闭浏览器 browser.quit() #6.浏览器前进后退

python webdriver API学习笔记

浏览器操作 driver.maximize_window() #浏览器最大化 driver.set_window_size(480,800) #设置浏览器宽,高 driver.back() & driver.forward() #后退,前进 定位 find_element_by_id() find_element_by_name() find_element_by_class_name() find_element_by_tag_name() find_element_by_link_text(

转:python webdriver API 之定位 frame 中的对象

在 web 应用中经常会出现 frame 嵌套的应用,假设页面上有 A.B 两个 frame,其中 B 在 A 内,那么定位 B 中的内容则需要先到 A,然后再到 B.switch_to_frame 方法可以把当前定位的主体切换了 frame 里.怎么理解这句话呢?我们可以从 frame的实质去理解.frame 中实际上是嵌入了另一个页面,而 webdriver 每次只能在一个页面识别,因此才需要用 switch_to.frame 方法去获取 frame 中嵌入的页面,对那个页面里的元素进行定位

Selenium2+python自动化27-查看selenium API【转载】

前言 前面都是点点滴滴的介绍selenium的一些api使用方法,那么selenium的api到底有多少呢?本篇就叫大家如何去查看selenium api,不求人,无需伸手找人要,在自己电脑就有. pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现的.也可以生成WEB 页面的,还可以在服务器上以浏览器的方式呈现! 一.pydoc 1.到底什么是pydoc? ,这个是准确的解释:Documentation generator and online

虫师Selenium2+Python_4、webdriver API

大纲 P70——WebDriver API P83——控制浏览器 P86——简单元素操作 P92——键盘事件和获得验证信息(预期结果) P95——设置元素等待:显示等待和隐式等待 P100——定位一组元素 P104——多表单切换 P106——多窗口切换 P108——警告框处理 P110——上传文件 P116——下载文件 P117——操作cookie P120——调用JavaScript P123——处理HTML5的视频播放 P124——窗口截图 P125——关闭窗口和验证码处理 P128——We

Selenium2 Python 自动化测试实战学习笔记(七)

Selenium  Grid2 利用Grid可以在不同的主机上建立主节点(hub)和分支节点(node).使主节点上的测试用例在不同的分支节点上运行,可以搭建不同的环境,从而使一份测试用例完成在不同环境下的验证.Selenium Grid2已经集成到selenium server中了(selenium-server-stanalon-xxx.jar包中). 9.1 Selenium2工作原理 Selenium2 中因为使用的WebDriver,这个技术不是靠js 驱动的,而是直接调用浏览器的原生