Selenium with Python 文档

来源:互联网 发布:mysql终端查看数据库 编辑:程序博客网 时间:2024/06/05 22:40

http://selenium-python.readthedocs.io/installation.html#introduction

1. 知识点:

  • 定位(8大定位)
  • click,sendkeys
  • select,Drag and drop
  • 切换窗口
  • 处理alert,alert.accept/dismissed
  • back and forward
  • 处理cookies
  • waits--Explicit Waits:下面的code等待某事件发生才继续进行,举例如下:相对等待

from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECdriver = webdriver.Firefox()driver.get("http://somedomain/url_that_delays_loading")try:    element = WebDriverWait(driver, 10).until(        EC.presence_of_element_located((By.ID, "myDynamicElement"))    )finally:    driver.quit()
自定义等待情况:

自定义类然后定义__call__(self, driver)方法返回False如果结果不匹配的情况下

Implicit Waits绝对等待,类似sleep,等待一个固定时间

  • 上传文件,.sendkeys("文件地址")
  • 下载文件
  • 保存截图 driver.save_screenshot

2. API

from selenium import webdriver

webdriver.Firefoxwebdriver.FirefoxProfilewebdriver.Chromewebdriver.ChromeOptionswebdriver.Iewebdriver.Operawebdriver.PhantomJSwebdriver.Remotewebdriver.DesiredCapabilitieswebdriver.ActionChainswebdriver.TouchActionswebdriver.Proxy
from selenium.webdriver.common.keys import Keys

from selenium.common.exceptions import [TheNameOfTheExceptionClass]

2.1 Action Chains

from selenium.webdriver.common.action_chains import ActionChains

Actions:

  • click(on_element=None)点击或点击某个元素
  • click_and_hold(on_element=None)长按或长按某个元素
  • context_click(on_element=None)右键点击或右键点击某个元素
  • double_click(on_element=None)双击或双击某个元素
  • drag_and_drop(source, target)拖拽
  • drag_and_drop_by_offset(source, xoffset, yoffset)拖拽到某个点
  • key_down(value, element=None)按下某键,value为key类的某值,例如key.CONTROL
  • key_up(value, element=None)放开某键
  • move_by_offset(xoffset, yoffset)把鼠标移动一定距离
  • move_to_element(to_element)把鼠标移动到某元素的中心位置
  • move_to_element_with_offset(to_element, xoffset, yoffset)把一个元素移动一定距离,以左上角为基准
  • perform() ActiveChains最后的实现
  • release(on_element=None)释放某个元素
  • reset_actions()清除所有存储的动作
  • send_keys(*keys_to_send)
  • send_keys_to_element(element, *keys_to_send)

2.2 Alerts

from selenium.webdriver.common.alert import Alert

accept()确认

dismiss()取消

authenticate(username, password)输入用户名密码并点击OK

send_keys(keysToSend)向alert输入文字

text得到alert上的文字

原创粉丝点击