python+selenium方法大全
一、selenium定位方法
1、WebDriver8種基本元素定位方式
1)find_element_by_id() 根據id屬性進行定位
2)find_element_by_name() 根據name元素進行定位
3)find_element_by_class_name() 根據class的名字進行定位
4)find_element_by_xpath() xpath是XML路徑語言,它可以用來確定xml文件中的元素位置,透過元素的路徑來完成對元素的查詢
5)find_element_by_css_selector() CSS屬性定位可以比較靈活地選擇控制元件的任意屬性,定位方式也會比xpath快
6)find_element_by_tag_name() 根據標籤名進行定位
7)find_element_by_link_text() 根據完整的超連結文字進行定位
8)find_element_by_partial_link_text() 根據部分超連結文字進行定位
2、By定位
by定位需要需要匯入By類:from selenium.webdriver.common.by import By
find_element(By.ID,"") find_element(By.NAME,"") find_element(By.CLASS_NAME,"") find_element(By.TAG_NAME,"") find_element(By.LINK_TEXT,u" ") find_element(By.PARTIAL_LINK_TEXT,u" ") find_element(By.XPATH,"") find_element(By.CSS_SELECTOR,"")12345678
3、elements複數定位
八種基礎的定位方法都有對應的複數形式
id複數定位find_elements_by_id() name複數定位find_elements_by_name() class複數定位find_elements_by_class_name() tag複數定位find_elements_by_tag_name() link複數定位find_elements_by_link_text() partial_link複數定位find_elements_by_partial_link_text() xpath複數定位find_elements_by_xpath() css複數定位find_elements_by_css_selector()12345678
4、JS的5種定位方式
id定位:document.getElementById() name定位:document.getElementsByName() tag定位:document.getElementsByTagName() class定位:document.getElementsByClassName() css定位:document.querySelectorAll()12345
二、其他selenium操作
1、常用庫匯入
1)from selenium import webdriver 匯入webdriver模組
2)from selenium.webdriver import ActionChains 匯入動作鏈類,動作鏈可以儲存滑鼠的動作,並一起執行
3)from selenium.webdriver.common.key import Key 鍵盤操作使用的是Keys類,一般配合send_keys使用
4)from selenium.webdriver.support.select import Select 下拉框的操作都交由Select類進行處理
5)from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 顯示等待使用的類
2、基本操作
1)瀏覽器相關操作
建立瀏覽器物件 driver = webdriver.xxx()
視窗最大化 maximize_window()
獲取瀏覽器尺寸 get_window_size()
設定瀏覽器尺寸 set_window_size()
獲取瀏覽器位置 get_window_position()
設定瀏覽器位置 set_window_position(x,y)
關閉當前標籤/視窗 close()
關閉所有標籤/視窗 quit()
2)頁面相關操作
請求某個url driver.get(url)
重新整理頁面操作 refresh()
回退到之前的頁面 back()
前進到之後的頁面 forward()
獲取當前訪問頁面url current_url
獲取當前瀏覽器標題 title
儲存圖片 get_screenshot_as_png()/get_screenshot_as_file(file)
網頁原始碼 page_source
3、元素的操作
點選操作 element.click()
清空輸入框 element.clear()
輸入框輸入資料 element.send_keys(data)
獲取文字內容(既開閉標籤之間的內容) element.text
獲取屬性值(獲取element元素的value屬性的值) element.get_attribute(value)
4、滑鼠和鍵盤操作
滑鼠操作需要匯入類,見第一部分,然後建立物件ActionChains(driver),鍵盤操作匯入類
滑鼠右擊
el = driver.find_element_by_xxx(value)
context_click(el)
滑鼠雙擊
el = driver.find_element_by_xxx(value)
ActionChains(driver).double_click(el).perform()
滑鼠懸停
el = driver.find_element_by_xxx(value)
ActionChains(driver).move_to_element(el).perform()
常用鍵盤操作
send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace)
send_keys(Keys.SPACE) 空格鍵(Space)
send_keys(Keys.TAB) 製表鍵(Tab)
send_keys(Keys.ESCAPE) 回退鍵(Esc)
send_keys(Keys.ENTER) Enter鍵(Enter)
send_keys(Keys.CONTROL,‘a’) 全選(Ctrl+A)
send_keys(Keys.CONTROL,‘c’) 複製(Ctrl+C)
send_keys(Keys.CONTROL,‘x’) 剪下(Ctrl+X)
send_keys(Keys.CONTROL,‘v’) 貼上(Ctrl+V)
5、彈出框操作
進入到彈出框中 driver.switch_to.alert()
接收警告 accept()
關閉警告 dismiss()
傳送文字到警告框 send_keys(data)
6、下拉框操作
將定位到的下拉框元素傳入Select類中 selobj = Select(element)
透過索引選擇,index 索引從 0 開始 select_by_index()
透過值選擇(option標籤的一個屬性值) select_by_value()
透過文字選擇(下拉框的值) select_by_visible_text()
檢視所有已選 all_selected_options
檢視第一個已選 first_selected_option
檢視是否是多選 is_multiple
檢視選項元素列表 options
取消選擇 deselect_by_index() /deselect_by_value()/ deselect_by_visible_text()
7、捲軸操作
js = "window.scrollTo(x,y) " x為水平拖動距離,y為垂直拖動舉例
driver.execute_script(js)
js= “var q=document.documentElement.scrollTop=n” n為從頂部往下移動滾動舉例
driver.execute_script(js)
8、cookies操作
獲取所有cookies get_cookies()
獲取key對應的值 get_cookie(key)
設定cookies add_cookie(cookie_dict)
刪除指定名稱的cookie delete_cookie(name)
刪除所有cookie delete_all_cookies()
9、多標籤/多視窗、多表單/多框架切換
多表單/多框架切換
直接使用id值切換進表單 driver.switch_to.frame(value)
定位到表單元素,再切換進入
el = driver.find_element_by_xxx(value)
driver.switch_to.frame(el)
跳回最外層的頁面 driver.switch_to.default_content()
跳回上層的頁面 driver.switch_to.parent_frame()
多標籤/多視窗之間的切換
獲取所有視窗的控制程式碼 handles = driver.window_handlers
透過視窗的控制程式碼進入的視窗 driver.switch_to.window(handles[n])
介面測試工具可以使用國產介面測試和介面文件生成工具:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69986023/viewspace-2751186/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript陣列方法大全JavaScript陣列
- MySQL rename table方法大全MySql
- CSS居中方法大全CSS
- Javascript驗證方法大全JavaScript
- app推廣方法大全APP
- SAP API開發方法大全API
- CSS清除浮動方法大全CSS
- 讀取檔案方法大全
- 軟體測試方法大全
- python+selenium切換彈框的iframe框架失敗處理方法Python框架
- python+selenium 處理圖片驗證碼,Image 點不出 crop 方法Python
- python+selenium 儲存logPython
- JS基礎 --- String方法大全JS
- JavaScript陣列方法大全(推薦)JavaScript陣列
- JS常用屬性方法大全(一)JS
- Python+Selenium - 檔案上傳Python
- python+selenium 截圖儲存Python
- Python+Selenium(1)- 環境搭建Python
- 小程式資料通訊方法大全
- Fastjson的基本使用方法大全ASTJSON
- MySQL修改賬號密碼方法大全MySql密碼
- CSS清除浮動大全共8種方法CSS
- Web檔案上傳方法總結大全Web
- javascript 原生常用api 陣列方法大全JavaScriptAPI陣列
- C#檔案操作方法大全C#
- PostgreSQL的安裝和啟動方法大全SQL
- JavaScript內建物件屬性及方法大全JavaScript物件
- cad快捷鍵命令大全及使用方法 cad常用命令大全圖表
- 求教:python+selenium 下拉框選擇Python
- python+selenium實現自動搶票Python
- python+selenium 連線MySQL資料庫PythonMySql資料庫
- Python+Selenium安裝及環境配置Python
- MySQL檢視及殺掉連結方法大全MySql
- Python讀寫EXCEL檔案常用方法大全PythonExcel
- jQuery操作checkbox核取方塊方法大全jQuery
- 前端面試中常考的字串操作方法大全前端面試字串
- html檔案中包含其他檔案的方法大全HTML
- 基於python+selenium的二次封裝Python封裝