selenium操作瀏覽器速查表(python3)

selenium操作速查表(python)

目錄

selenium操作速查表(python)

創建瀏覽器對象

瀏覽器操作

操作cookies

隱式/顯式等待

概念

隱式等待--默認的時間是0

顯式等待--設定特定等待

定位dom元素

鼠標事件

鍵盤事件

截圖彈窗操作



創建瀏覽器對象

功能 代碼
導包 from selenium import webdriver
創建對象 driver=webdriver.Chrome()

瀏覽器操作

功能 代碼
瀏覽器打開網址url driver.get(url)
瀏覽器最大化 driver.maximize_window()
縮放瀏覽器爲800*480像素 driver.set_window_size(480, 800)
瀏覽器後退 driver.back()
瀏覽器前進 driver.forward()
瀏覽器關閉 driver.close()
瀏覽器退出 driver.quit()

操作cookies

功能 代碼
獲得所有cookie driver.get_cookies()
獲得指定cookie driver.get_cookie(name)
添加cookie driver.add_cookie(dict)
刪除指定cookie driver.delete_cookie(name)
刪除所有cookie driver.delete_all_cookies()

隱式/顯式等待

概念

網上一查selenium的等待方式有三種,解釋很繁瑣,其中sleep()就不解釋了,是一個阻塞強制等待。

實際上隱式/顯式等待很簡單,前者全局適用,後者特定dom對象適用,理解起來就是這麼簡單,分情況使用即可。

  • 隱式等待-設定全局等待===>一個driver打開到關閉的生命週期內所有的全局等待
  • 顯式等待-設定特定等待===>特定DOM元素,即html的標籤對象,可以單獨設定等待

隱式等待--默認的時間是0

  • 隱式等待相當於全局等待
  • browser.implicitly_wait(10)

示例代碼:

browser = webdriver.Chrome()
# 等待十秒加載不出來就會拋出異常,10秒內加載出來正常返回
browser.implicitly_wait(10)
browser.get('https://www.zhihu.com/explore')
input = browser.find_element_by_class_name('class-login')
print(input)

顯式等待--設定特定等待

  • 爲查找特定dom元素設定等待
  • WebDriverWait(browser, 10)

示例代碼:

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

browser = webdriver.Chrome()
browser.get('https://www.taobao.com/')
# 等待十秒加載不出來就會拋出異常,10秒內加載出來正常返回
wait = WebDriverWait(browser, 10)
input = wait.until(EC.presence_of_element_located((By.ID, 'q')))
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.btn-search')))
print(input, button)

定位dom元素

方法Method 描述Description 參數Argument 示例Example
id 該方法通過ID的屬性值去定位查找單個元素 id: 需要被查找的元素的ID find_element_by_id('search')
name 該方法通過name的屬性值去定位查找單個元素 name: 需要被查找的元素的名稱 find_element_by_name('q')
class name 該方法通過class的名稱值去定位查找單個元素 class_name: 需要被查找的元素的類名 find_element_by_class_name('input-text')
tag_name 該方法通過tag的名稱值去定位查找單個元素 tag: 需要被查找的元素的標籤名稱 find_element_by_tag_name('input')
link_text 該方法通過鏈接文字去定位查找單個元素 link_text: 需要被查找的元素的鏈接文字 find_element_by_link_text('Log In')
partial_link_text 該方法通過部分鏈接文字去定位查找單個元素 link_text: 需要被查找的元素的部分鏈接文字 find_element_by_partial_link_text('Long')
xpath 該方法通過XPath的值去定位查找單個元素 xpath: 需要被查找的元素的xpath find_element_by_xpath('//*[@id="xx"]/a')
css_selector 該方法通過CSS選擇器去定位查找單個元素 css_selector: 需要被查找的元素的ID find_element_by_css_selector('#search')

鼠標事件

代碼 動作
click() 單擊
context_click() 右擊
double_click() 雙擊
drag_and_drop() 拖拽
move_to_element() 鼠標懸停在一個元素上
click_and_hold() 按下鼠標左鍵在一個元素上

鍵盤事件

代碼 描述
send_keys(Keys.BACKSPACE) 刪除鍵(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)

截圖彈窗操作

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