WebDriver Api

一、操作元素基本方法:

1、操作浏览器基本方法:

  1.1打开网页

    driver = webdriver.Firefox()

    driver = webdriver.Ie()

    driver = webdriver.Chrome()

    driver.get('http://www.baidu.com')

  1.2设置休眠

    import time

    time.sleep()

  1.3页面刷新

    driver.refresh()

  1.4页面切换

    driver.back()      返回上一页

    driver.forward()  切换到下一页

  1.5设置窗口大小

    driver.set_window_size(540,960)    设置浏览器大小为540*960

    driver.maximize_window()                设置浏览器窗口最大化

  1.6截屏

    driver.get_screenshot_as_file('保存地址')

  1.7退出

    driver.close()   关闭当前窗口

    driver.quit()      用于结束进程,关闭所有窗口

2、常用8种元素定位(Firebug和firepath)

  2.1  id定位            find_element_by_id(self,id)

  2.2  name定位      find_element_by_name(self,name)

  2.3  class定位       find_element_by_class_name()

  2.4  tag定位          find_element_by_tag_name(self,name)

  2.5  link定位          find_element_by_link_text(self,link_text)

  2.6  partial_link定位 find_element_by_partial_link_text(self,link_text)

  2.7  xpath定位       find_element_by_xpath(self,xpath)

  2.8  css定位          find_element_by_css_selector(self,css_selector)

    这八种是复数形式(2.8和2.27章节有介绍)
   2.9  id复数定位           find_elements_by_id(self, id_)
        2.10  name复数定位   find_elements_by_name(self, name)
        2.11  class复数定位    find_elements_by_class_name(self, name)
        2.12  tag复数定位       find_elements_by_tag_name(self, name)
        2.13  link复数定位       find_elements_by_link_text(self, text)
        2.14  partial_link复数定  find_elements_by_partial_link_text(self, link_text)
        2.15  xpath复数定位    find_elements_by_xpath(self, xpath)
        2.16  css复数定位        find_elements_by_css_selector(self, css_selector
       这两种是参数化的方法,对上面8种的总结(4.2有具体介绍)
        2.17      find_element(self, by='id', value=None)
        2.18      find_elements(self, by='id', value=None)
3、操作元素(键盘和鼠标事件)

  3.1简单操作

    点击(鼠标左键)页面按钮      click()

    清空输入框                               clear()

    输入字符串                               send_keys()

  3.2 submit提交表单

    submi()一般用于模拟回车键

    driver.find_element_by_id('kw').submit()

  3.3键盘事件

    模拟键盘的操作需要先导入键盘模块: from selenium.webdriver.common.keys import Keys

    模拟enter键,可以用send_keys(Keys.ENTER)

    driver.find_element_by_id('kw').send_keys(Keys.ENTER)

  3.4 其他常见的键盘操作

    键盘F1到F12    send_keys(Keys.F1)      把F1改为对应的快捷键

    复制Ctrl+C        send_keys(Keys.CONTROL,'c')

    粘贴Ctrl+V        send_keys(Keys.CONTROL,'v')

    全选Ctrl+A        send_keys(Keys.CONTROL,'a')

    剪切Ctrl+X        send_keys(Keys.CONTROL,'x')

    制表键Tab        send_keys(Keys.TAB)

  3.5鼠标悬停事件

    鼠标悬停事件需先导入模块  from selenium.webdriver.common.action_chains import ActionChains

    perform()执行所有ActionChains中的行为

    move_to_element()鼠标悬停

    百度设置按钮例子:

    from selenium import webdriver

    from selenium webdriver.common.action_chains import ActionChains

    driver = webdriver.Firefox()

    driver.get('http://www.baidu.com')

    # 鼠标悬停在搜索设置按钮上

    mouse = driver.find_element_by_link_text('设置')

    ActionChains(driver).move_to_element(mouse).perform()

  3.6除了常用的鼠标悬停事件外,还有

    右击鼠标  context_click()

    双击鼠标  double_click()

3.7多窗口,句柄(handle)

    获取当前页面的句柄  driver.current_window_handle

    获取当前所有句柄      driver.window_handles

    

    

  

原文地址:https://www.cnblogs.com/niki-1314/p/8656743.html