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,"")

、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()

4、JS的5種定位方式

id定位:document.getElementById()
name定位:document.getElementsByName()
tag定位:document.getElementsByTagName()
class定位:document.getElementsByClassName()
css定位:document.querySelectorAll()

二、其他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)

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])

接口測試工具可以使用國產接口測試和接口文檔生成工具:apipost
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章