http://selenium-python.readthedocs.io/installation.html#introduction
1. 知识点:
定位(8大定位)click,sendkeysselect,Drag and drop切换窗口处理alert,alert.accept/dismissedback and forward处理cookieswaits--Explicit Waits:下面的code等待某事件发生才继续进行,举例如下:相对等待 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = 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_screenshot2. API
from selenium import webdriver
webdriver.Firefox webdriver.FirefoxProfile webdriver.Chrome webdriver.ChromeOptions webdriver.Ie webdriver.Opera webdriver.PhantomJS webdriver.Remote webdriver.DesiredCapabilities webdriver.ActionChains webdriver.TouchActions webdriver.Proxy from selenium.webdriver.common.keys import Keysfrom 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.CONTROLkey_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上的文字