python+selenium方法大全

      網(wǎng)友投稿 1220 2022-05-28

      一、selenium定位方法

      1、WebDriver8種基本元素定位方式

      1)find_element_by_id() 根據(jù)id屬性進(jìn)行定位

      2)find_element_by_name() 根據(jù)name元素進(jìn)行定位

      3)find_element_by_class_name() 根據(jù)class的名字進(jìn)行定位

      4)find_element_by_xpath() xpath是XML路徑語言,它可以用來確定xml文檔中的元素位置,通過元素的路徑來完成對元素的查找

      5)find_element_by_css_selector() CSS屬性定位可以比較靈活地選擇控件的任意屬性,定位方式也會比xpath快

      6)find_element_by_tag_name() 根據(jù)標(biāo)簽名進(jìn)行定位

      7)find_element_by_link_text() 根據(jù)完整的超鏈接文字進(jìn)行定位

      python+selenium方法大全

      8)find_element_by_partial_link_text() 根據(jù)部分超鏈接文字進(jìn)行定位

      2、By定位

      by定位需要需要導(dǎo)入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,"")

      3、elements復(fù)數(shù)定位

      八種基礎(chǔ)的定位方法都有對應(yīng)的復(fù)數(shù)形式

      id復(fù)數(shù)定位find_elements_by_id() name復(fù)數(shù)定位find_elements_by_name() class復(fù)數(shù)定位find_elements_by_class_name() tag復(fù)數(shù)定位find_elements_by_tag_name() link復(fù)數(shù)定位find_elements_by_link_text() partial_link復(fù)數(shù)定位find_elements_by_partial_link_text() xpath復(fù)數(shù)定位find_elements_by_xpath() css復(fù)數(shù)定位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、常用庫導(dǎo)入

      1)from selenium import webdriver 導(dǎo)入webdriver模塊

      2)from selenium.webdriver import ActionChains 導(dǎo)入動作鏈類,動作鏈可以儲存鼠標(biāo)的動作,并一起執(zhí)行

      3)from selenium.webdriver.common.key import Key 鍵盤操作使用的是Keys類,一般配合send_keys使用

      4)from selenium.webdriver.support.select import Select 下拉框的操作都交由Select類進(jìn)行處理

      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)瀏覽器相關(guān)操作

      創(chuàng)建瀏覽器對象  driver = webdriver.xxx()

      窗口最大化    maximize_window()

      獲取瀏覽器尺寸  get_window_size()

      設(shè)置瀏覽器尺寸  set_window_size()

      獲取瀏覽器位置  get_window_position()

      設(shè)置瀏覽器位置  set_window_position(x,y)

      關(guān)閉當(dāng)前標(biāo)簽/窗口 close()

      關(guān)閉所有標(biāo)簽/窗口  quit()

      2)頁面相關(guān)操作

      請求某個url      driver.get(url)

      刷新頁面操作     refresh()

      回退到之前的頁面   back()

      前進(jìn)到之后的頁面   forward()

      獲取當(dāng)前訪問頁面url  current_url

      獲取當(dāng)前瀏覽器標(biāo)題  title

      保存圖片       get_screenshot_as_png()/get_screenshot_as_file(file)

      網(wǎng)頁源碼       page_source

      3、元素的操作

      點擊操作    element.click()

      清空輸入框   element.clear()

      輸入框輸入數(shù)據(jù) element.send_keys(data)

      獲取文本內(nèi)容(既開閉標(biāo)簽之間的內(nèi)容)  element.text

      獲取屬性值(獲取element元素的value屬性的值)  element.get_attribute(value)

      4、鼠標(biāo)和鍵盤操作

      鼠標(biāo)操作需要導(dǎo)入類,見第一部分,然后創(chuàng)建對象ActionChains(driver),鍵盤操作導(dǎo)入類

      鼠標(biāo)右擊

      el = driver.find_element_by_xxx(value)

      context_click(el)

      鼠標(biāo)雙擊

      el = driver.find_element_by_xxx(value)

      ActionChains(driver).double_click(el).perform()

      鼠標(biāo)懸停

      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(chǎn)’) 全選(Ctrl+A)

      send_keys(Keys.CONTROL,‘c’) 復(fù)制(Ctrl+C)

      send_keys(Keys.CONTROL,‘x’) 剪切(Ctrl+X)

      send_keys(Keys.CONTROL,‘v’) 粘貼(Ctrl+V)

      5、彈出框操作

      進(jìn)入到彈出框中  driver.switch_to.alert()

      接收警告     accept()

      關(guān)閉警告     dismiss()

      發(fā)送文本到警告框 send_keys(data)

      6、下拉框操作

      將定位到的下拉框元素傳入Select類中  selobj = Select(element)

      通過索引選擇,index 索引從 0 開始  select_by_index()

      通過值選擇(option標(biāo)簽的一個屬性值)  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對應(yīng)的值  get_cookie(key)

      設(shè)置cookies  add_cookie(cookie_dict)

      刪除指定名稱的cookie  delete_cookie(name)

      刪除所有cookie  delete_all_cookies()

      9、多標(biāo)簽/多窗口、多表單/多框架切換

      多表單/多框架切換

      直接使用id值切換進(jìn)表單   driver.switch_to.frame(value)

      定位到表單元素,再切換進(jìn)入

      el = driver.find_element_by_xxx(value)

      driver.switch_to.frame(el)

      跳回最外層的頁面  driver.switch_to.default_content()

      跳回上層的頁面  driver.switch_to.parent_frame()

      多標(biāo)簽/多窗口之間的切換

      獲取所有窗口的句柄   handles = driver.window_handlers

      通過窗口的句柄進(jìn)入的窗口  driver.switch_to.window(handles[n])

      接口測試工具可以使用國產(chǎn)接口測試和接口文檔生成工具:apipost

      Python Selenium

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:leetcode212. 單詞搜索 II
      下一篇:petalinux初學(xué)者-使用教程-快速入門
      相關(guān)文章
      亚洲精品无码久久久久久久 | 亚洲爽爽一区二区三区| 亚洲天堂免费在线| 亚洲综合精品一二三区在线| 日韩亚洲欧洲在线com91tv| 亚洲精品自在在线观看| 亚洲热妇无码AV在线播放| 在线精品亚洲一区二区小说| 亚洲午夜国产片在线观看| 狠狠亚洲狠狠欧洲2019| 国产亚洲精品精品国产亚洲综合| 亚洲一区精品伊人久久伊人| 亚洲人成影院在线无码观看| 亚洲天堂免费在线视频| 亚洲永久精品ww47| 亚洲AV无码日韩AV无码导航| 亚洲av不卡一区二区三区 | 亚洲熟妇AV日韩熟妇在线| 亚洲国产综合精品中文第一| 亚洲欧美熟妇综合久久久久| 亚洲s码欧洲m码吹潮| 一本色道久久88综合亚洲精品高清 | 亚洲大尺度无码专区尤物| 亚洲AV无码国产丝袜在线观看 | 亚洲sm另类一区二区三区| 亚洲爆乳无码精品AAA片蜜桃| 国产亚洲一卡2卡3卡4卡新区 | 亚洲欧洲在线播放| 亚洲欧洲日韩极速播放| 亚洲成a人无码亚洲成av无码| 国产精品亚洲а∨无码播放麻豆| 亚洲av无码乱码在线观看野外| jlzzjlzz亚洲乱熟在线播放| 亚洲国产精品无码久久久秋霞2| 亚洲国产精品国自产电影| 亚洲国产精品白丝在线观看| 日韩亚洲国产高清免费视频| 日本亚洲欧美色视频在线播放| 亚洲日韩国产成网在线观看| 国产亚洲人成无码网在线观看| 亚洲一区二区成人|