1. 程式人生 > >Selenium基本操作

Selenium基本操作

Selenium 基本操作

配置環境

  1. python
  2. ChromeDriver 下載地址
  3. selenium庫

準備工作

  1. 安裝python(略)
  2. 安裝selenium庫 pip install selenium
  3. 安裝Chrome
  4. 下載 ChromeDriver 對應版本, 並將ChromeDriver 放到py檔案目錄

定位元素

  • 返回一個匹配元素
find_element_by_id()	# 通過元素的ID屬性定位元素
find_element_by_name()	# 通過元素的name屬性定位到該元素
find_element_by_class_name() # 通過元素的class屬性定位到該元素
find_element_by_tag_name() # <div>,<span>等標籤定位到該元素 find_element_by_link_text() # 通過<a>等連結元素的文字定位到該元素 find_element_by_partial_link_text() find_element_by_xpath() # 通過XPath定位到該元素,建議掌握 find_element_by_css_selector() # 通過css選擇器定位元素

以上操作,見名知意,都是返回第一個匹配的WebElement元素

  • 返回一個匹配元素列表
find_elements_by_name(
) # 返回所有具有相同name屬性的元素列表 find_elements_by_class_name() # 返回所有具有相同class_name屬性的元素列表 find_elements_by_tag_name() # <div>,<span>返回所有具有相同標籤的元素列表 find_elements_by_link_text() # 通過<a>返回所有具有相同文字描述的元素列表 find_elements_by_partial_link_text() find_elements_by_xpath() # 返回所有具有相同Xpath屬性的元素 find_elements_by_css_selector(
) # 返回所有具有相同css_selector的元素

定位元素操作,一旦執行失敗(即查詢不到), 就會丟擲異常因此必須使用 try: .. except: ... 機制避免錯誤的行為影響程式繼續進行

WebDriver 的一些常用操作:

例項化一個 WebDriver物件 driver = webdriver.Chrome() 千萬不要忘記()

driver.curren_url : 獲取當前載入頁面的 URL
driver.close() : 關閉當前視窗, 如果當前視窗是最後一個視窗, 瀏覽器將關閉
driver.quit() : 關閉所有視窗並停止 ChromeDriver 的執行
driver.add_cookie(cookie_dict) : 為當前會話新增 cookie 
driver.get_cookie(name) : 得到執行 cookie 
driver.get_cookies() : 得到所有的 cookie
driver.delete_all_cookies() : 刪除當前會話的所有cookie 
driver.delete_cookie(name) : 刪除指定 cookie
driver.back() : 相當於瀏覽器的後退歷史記錄
driver.forward() : 相當於瀏覽器的前進歷史記錄
driver.execute_script(script, *args) : 同步執行 js 指令碼 
driver.execute_async_script(script, *args) : 非同步執行 js 指令碼
driver.get(url) : 在當前視窗載入 url
driver.refresh() : 重新整理當前頁面
driver.current_window_handle : 當前視窗的 handle, 相當於一個指標一樣的東西, 用來指向當前視窗
driver.window_handles : 當前瀏覽器中的已經開啟的所有視窗, 是一個 list
driver.switch_to_window(window_handle) : 切換 window_handle 指向的視窗
driver.title : 當前頁面的 title
driver.name : 當前瀏覽器的名字

WebElement 的一些常用操作

通過元素定位獲取一個WebElement元素 webEle = find_element_by_id('password')

    webEle.clear() : 清楚元素的內容, 假如這個元素是一個文字元素
    webEle.click() : 點選當前元素
    webEle,is_displayed() : 當前元素是否可見
    webEle.is_enabled() : 當前元素是否禁止, 比如經常會禁用一些元素的點選
    webEle.is_selected() : 當前元素是否選中, 文字輸入框的內容
    webEle.send_keys(*value) : 向當前元素模擬鍵盤事件
    webEle.submit() : 提交表單
    webEle.tag_name : 當前元素的標籤名
    webEle.text : 當前元素的內容, 注意是沒有(括號)的
    webEle.get_attribute(name) : 獲取當前元素執行屬性的值