一.定位元素
(1)id定位
driver.find_element_by_id("id")
(2)name定位
driver.find_element_by_name("name")
(3)class定位
driver.find_element_by_class_name("class_name")
(4)tag定位(<div>,<input>,<a>)
driver.find_element_by_tag_name("input")
(5)link定位(a里面定義的link_text)
driver.find_element_by_link_text("百度地圖")
(6)partial link定位(a標簽內部名稱的一部分)
driver.find_element_by_partial_link_text("地圖")
(7)XPath定位
1)絕對路徑
driver.find_element_by_xpath("/html/body/div/div[2]/div/div/from/span/input")
2)元素屬性定位
driver.find_element_by_xpath("//input[@id='kw']")
driver.find_element_by_xpath("//*[@class='s_bg']")#不指定標簽
3)層級和屬性結
driver.find_element_by_xpath("//span[@id='form']/span/input")
4)使用邏輯運算符定位
driver.find_element_by_xpath("//input[@id='aa'and @name='bb']/span/input")
(8)css定位
1)class屬性定位
driver.find_element_by_css_selector(".s_bg")
2)id屬性定位
driver.find_element_by_css_selector("#su")
3)標簽名定位
driver.find_element_by_css_selector("input")
driver.find_element_by_css_selector("span>input") #父子關系
driver.find_element_by_css_selector("[autocomplete=off]") #屬性
driver.find_element_by_css_selector("form.fm>span>input.s_bg") #組合
二.對元素的簡單操作函數
(1)清除
driver.find_element_by_id().clear()
(2)點擊
driver.find_element_by_id().click()
(3)輸入
driver.find_element_by_id().send_keys("username")
(4)提交表單,可當做回車鍵使用,與click()互換使用,范圍比click()小
driver.find_element_by_id().submit()
(5)元素大小
size=driver.find_element_by_id().size
(6)獲取元素的文本
text=driver.find_element_by_id().text
(7)獲取類型
driver.find_element_by_id().get_attribute('type')
(8)是否可見,返回值是ture or false
driver.find_element_by_id().is_displayed()
(9)獲取當前頁面標題
title=driver.title
(10)獲取當前頁面的url
url=driver.current_url
(11)隱式等待
driver.implicitly_wait(10)
三.常用的函數
1.控制瀏覽器
(1)控制瀏覽器大小
driver.set_window_size(400,800)
(2)控制瀏覽器前進后退
driver.back()
driver.forward()
(3)刷新
driver.refresh()
2.鼠標事件
導入ActionChains
from selenium.webdriver.common.action_chains import ActionChains
(1)鼠標右擊
right_click=driver.find_element_by_id("xx") #定位要右擊的元素
ActionChains(driver).context_click(right_click).perform()
(2)鼠標懸停-- move_to_element()
above=driver.find_element_by_id("id")
ActionChains(driver).move_to_element(above).perform()
(3)鼠標雙擊操作
ActionChains(driver).double_click().perform()
(4)鼠標拖動操作----drag_and_drop(source,target)
source=driver.find_element_by_id("xx")#source:鼠標拖動的源元素
target=driver.find_element_by_id("xx")#target:鼠標拖動的目標元素
ActionChains(driver).drag_and_drop(source,target).perform()
3.鍵盤事件
導入Keys類
from selenium.webdriver.common.keys import Keys
(1)driver.find_element_by_id().send_keys(Key.BACK_SPACE) #刪除鍵
(2)driver.find_element_by_id().send_keys(Keys.SPACE) #空格鍵
(3)driver.find_element_by_id().send_keys(Keys.TAB) #制表鍵
(4)driver.find_element_by_id().send_keys(Keys.ESCAPE) #回退鍵
(5)driver.find_element_by_id().send_keys(Keys.ENTER) #回車鍵
(6)driver.find_element_by_id().send_keys(Keys.CONTROL,'a') #全選
(7)driver.find_element_by_id().send_keys(Keys.CONTROL,'c') #復制
(8)driver.find_element_by_id().send_keys(Keys.CONTROL,'x') #剪切
(9)driver.find_element_by_id().send_keys(Keys.CONTROL,'v') #粘貼
(10)driver.find_element_by_id().send_keys(Keys.F1) #鍵盤F1
4.警告框的處理--- switch_to_alert()
(1)獲取警示框的文本
driver.switch_to_alert().text
(2)接受警示
driver.switch_to_alert().accept()
(3)解散警示框
driver.switch_to_alert().dismiss()
(4)發送文本至警告
driver.switch_to_alert().send_keys(keysToSend)
5.上傳文件----send_keys()
driver.find_element_by_id("file").send_keys('D:\\upload_file.txt')
6.操作cookie
(1)獲取全部
driver.get_cookie()
(2)獲取cookie的name
driver.get_cookie(name)
(3)添加cookie信息
driver.add_cookie({'name':'aa','value':'bb'})
(4)刪除特定的cookie
driver.delete_cookie(name,optionString)
(5)刪除全部cookie
driver.delete_all_cookies()
轉自https://blog.csdn.net/u014773821/article/details/72188621