【❤️爬蟲必備->Selenium從黑鐵到王者❤️】中篇——萬字博文詳解(建議收藏)

這是我參與8月更文挑戰的第9天,活動詳情查看:8月更文挑戰css

🎍第二部分——Selenium進階操做!

🐱1.操做瀏覽器的經常使用騷操做:

🚩(1)騷操做及代碼實現:

瀏覽器操做 代碼
最大化瀏覽器 driver.maximize_window()
刷新 driver.refresh()
後退 driver.back()
前進 driver.forward()
設置瀏覽器大小 driver.set_window_size(300,300)
設置瀏覽器位置 driver.set_window_position(300,200)
關閉瀏覽器單個窗口,若是隻有一個標籤頁則關閉整個瀏覽器 driver.close()
關閉瀏覽器全部窗口 driver.quit()

🚩(2)實戰使用:

  連續訪問三個頁面——天貓,淘寶,京東,而後調用back()方法回到第二個頁面——淘寶,接下來再調用forward()方法又能夠前進到第三個頁面——京東!html

⚠️①上代碼:

import time
from selenium import webdriver

browser = webdriver.Chrome()

browser.get('https://www.tmall.com/')
time.sleep(1)
browser.get('https://taobao.com/')
time.sleep(1)
browser.get('https://www.jd.com/')
time.sleep(1)
browser.back()
time.sleep(1)
browser.forward()
time.sleep(1)
browser.close()
複製代碼

🐹2.元素選取/查找節點:

第一種方法——find_element(s)by_...方法:

⚓️(1)單個節點:

  在一個頁面中有不少不一樣的策略能夠定位一個元素。咱們能夠選擇最合適的方法去查找元素。Selenium提供了下列的方法:前端

單個元素查找方法 做用
find_element_by_xpath() 經過Xpath查找
find_element_by_class_name() 經過class屬性查找
find_element_by_id() 經過id屬性查找
find_element_by_name() 經過name屬性進行查找
find_element_by_css_selector() 經過css選擇器查找 語法規則
find_element_by_link_text() 經過連接文本查找
find_element_by_partial_link_text() 經過連接文本的部分匹配查找
find_element_by_tag_name() 經過標籤名查找 (只有目標元素在當前html中是惟一標籤或者是衆多定位出來的標籤中的第一個的時候才使用!)

注意:經過上述無論是哪種方法,其返回的節點類型都是WebElement類型! python

⚓️(2)多個節點:

上面方法的element加上一個s,則是對應的多個元素的查找方法。

  以下可知其返回內容是列表類型,列表中每一個節點仍然是WebElement類型:web

[<selenium.webdriver.remote.webelement.WebElement (session="73974727c0ec09e0b7d57639c3", element="1b33ea80-ba15-91ac-635903f79df2")>, 
<selenium.webdriver.remote.webelement.WebElement (session="739747be09cb27c0ecd57639c3", element="1ac2f257-4364-be00-84de883b265d")>]
複製代碼

注意:find_element匹配不到就拋出異常,可是find_elements匹配不到返回空列表!shell

第二種方法——By對象查找:

除了以上的多種查找方式,還有兩種私有方法集成了上面的全部的查找方法,讓咱們更方便的使用!
方法 做用
find_element(By.XPATH, ‘//button/span’) 經過Xpath查找一個
find_elements(By.XPATH, ‘//button/span’) 經過Xpath查找多個

  其中的第一個參數能夠選擇使用查找的方法,By.xxx 使用xxx方式解析,解析方法以下(注意——By對象導入: from selenium.webdriver.common.by import By):瀏覽器

  • ID = "id" ​
  • XPATH = "xpath" ​
  • LINK_TEXT = "link text" ​
  • PARTIAL_LINK_TEXT = "partial link text"
  • ​ NAME = "name" ​
  • TAG_NAME = "tag name" ​
  • CLASS_NAME = "class name"
  • ​ CSS_SELECTOR = "css selector"

🐸3.節點交互:

  Selenium能夠驅動瀏覽器來執行一些操做,也就是說可讓瀏覽器模擬執行一些動做。markdown

🚀(1)常見用法:

方法 做用
send_keys() 輸入文字
clear() 清空文字
click() 點擊按鈕
submit() 提交表單

🚀(2)示例之騷操做:

# 定位用戶名
	element=driver.find_element_by_id("userA")
	# 輸入用戶名
	element.send_keys("admin1")
	# 刪除輸入的用戶名
	element.send_keys(Keys.BACK_SPACE)
	# 從新輸入用戶名
	element.send_keys("admin_new")
	# 全選
	element.send_keys(Keys.CONTROL,'a')
	# 複製
	element.send_keys(Keys.CONTROL,'c')
	# 粘貼
	driver.find_element_by_id('passwordA').send_keys(Keys.CONTROL,'v')
複製代碼

In The End!

在這裏插入圖片描述

從如今作起,堅持下去,一天進步一小點,不久的未來,你會感謝曾經努力的你!

本博主會持續更新爬蟲基礎分欄及爬蟲實戰分欄(爲了小夥伴們更好的進行頁面解析,也會更新部分前端必備知識點博文!),認真仔細看完本文的小夥伴們,能夠點贊收藏並評論出大家的讀後感。並可關注本博主,在從此的日子裏閱讀更多爬蟲文!session

若有錯誤或者言語不恰當的地方可在評論區指出,謝謝!
	如轉載此文請聯繫我說明用以意並標註出處及本博主名,謝謝!
複製代碼
相關文章
相關標籤/搜索