Selenium基礎:自動化你的網頁交互!

在構建Python爬蟲的過程中,你可能會遇到需要與網頁進行交互的情況,比如填充表單、點擊按鈕等。這時,Selenium庫就成了你的有力工具。Selenium是一個強大的工具,能夠模擬用戶在網頁上的各種操作。本篇博客將向你介紹Selenium的基礎用法,以及如何在你的爬蟲中使用Selenium進行自動化操作。

Selenium簡介

Selenium是一個用于Web應用程序測試的工具,它直接運行在瀏覽器中,就像真正的用戶在操作一樣。它支持多種瀏覽器,包括Chrome、Firefox、Edge等。

要使用Selenium,你需要安裝兩樣東西:

  1. Selenium Python庫

  2. 對應于你使用的瀏覽器的WebDriver

安裝Selenium庫

通過pip安裝Selenium庫相當簡單:

shell復制

pip install selenium

下載WebDriver

WebDriver是一個允許開發者編程方式控制瀏覽器的驅動。比如,對于Chrome,你需要下載ChromeDriver。確保下載的版本與你的瀏覽器版本匹配。

下載后,將WebDriver放在PATH環境變量所指的目錄,或者直接在代碼中指定其路徑。

Selenium的基本使用

讓我們用一個簡單的例子來展示如何打開一個網頁。

python復制

from selenium import webdriver
# 指定ChromeDriver的路徑driver_path = '/path/to/chromedriver'
# 初始化WebDriverdriver = webdriver.Chrome(driver_path)
# 打開網頁driver.get('https://www.example.com')
# 打印網頁標題print(driver.title)
# 關閉瀏覽器driver.quit()

在上面的代碼中,我們創建了一個Selenium WebDriver實例,并打開了一個網頁,然后打印其標題,并在最后關閉瀏覽器。

現在我也找了很多測試的朋友,做了一個分享技術的交流群,共享了很多我們收集的技術文檔和視頻教程。
如果你不想再體驗自學時找不到資源,沒人解答問題,堅持幾天便放棄的感受
可以加入我們一起交流。而且還有很多在自動化,性能,安全,測試開發等等方面有一定建樹的技術大牛
分享他們的經驗,還會分享很多直播講座和技術沙龍
可以免費學習!劃重點!開源的!!!
qq群號:691998057【暗號:csdn999】

與網頁元素交互

Selenium可以模擬各種網頁操作,下面是一些常見的交互方式:

查找元素

python復制

from selenium.webdriver.common.by import By
# 通過id查找元素element = driver.find_element(By.ID, 'id_of_element')
# 通過name查找元素element = driver.find_element(By.NAME, 'name_of_element')
# 通過xpath查找元素element = driver.find_element(By.XPATH, 'xpath_of_element')

發送文本到輸入框

python復制

# 假設我們找到了一個輸入框input_box = driver.find_element(By.ID, 'input_box_id')
# 發送文本到輸入框input_box.send_keys('Hello, Selenium!')

點擊按鈕

python復制???????

# 假設我們找到了一個按鈕button = driver.find_element(By.ID, 'button_id')
# 點擊按鈕button.click()

等待元素加載

有時候頁面不會立即加載所有的元素,這時候我們可以使用Selenium的等待功能。

python復制???????

from selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC
# 等待直到元素可見element = WebDriverWait(driver, 10).until(    EC.presence_of_element_located((By.ID, 'myDynamicElement')))

這段代碼會等待直到ID為'myDynamicElement'的元素在DOM中出現,或者超時(本例中為10秒)。

完整代碼案例

下面是一個使用Selenium進行自動化操作的完整代碼案例,模擬了搜索操作。

python復制???????

from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keys
# 初始化WebDriverdriver = webdriver.Chrome('/path/to/chromedriver')
# 打開Googledriver.get('https://www.google.com')
# 等待搜索框加載完成search_box = WebDriverWait(driver, 10).until(    EC.presence_of_element_located((By.NAME, 'q')))
# 輸入搜索內容并回車search_box.send_keys('Selenium Python' + Keys.RETURN)
# 等待搜索結果加載完成results = WebDriverWait(driver, 10).until(    EC.presence_of_element_located((By.ID, 'search')))
# 打印搜索結果print(results.text)
# 關閉瀏覽器driver.quit()

在這個例子中,我們打開了Google,等待搜索框加載,進行搜索,并打印出搜索結果。

總結

本篇博客介紹了如何使用Selenium庫進行Web自動化測試,包括基礎設置、元素交互、等待條件和一個實際的搜索案例。通過Selenium,你可以模擬幾乎所有的用戶交互,這對于復雜的網頁操作和動態內容抓取至關重要。掌握Selenium對于構建高級爬蟲來說是一個重要的技能。

下面是配套資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!

最后: 可以在公眾號:程序員小濠 ! 免費領取一份216頁軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!,其中包括了有基礎知識、Linux必備、Shell、互聯網程序原理、Mysql數據庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。

如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714225.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714225.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714225.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

EdgeX Foundry 設備服務

文章目錄 1.設備服務2.設備配置文件3.設備資源4.資源屬性(Attributes)5.資源屬性(Properties)6.設備命令7.資源操作8.REST 命令端點9.推送事件 EdgeX Foundry # EdgeX Foundryhttps://iothub.org.cn/docs/edgex/ https://iothub.…

好用的AI模型集合

AI-Chat 這個網站提供的AI-Chat 3.5和AI-Chat 4.0聊天機器人,每天都可以免費使用。 不管是學習、工作還是日常生活,都能給我們帶來很大的幫助,效率真的可以說是翻倍了。我覺得,如果你想讓自己的生活更加高效、更加有序&#xff0…

WEB漏洞 SSRF簡單入門實踐

一、漏洞原理 SSRF 服務端請求偽造 原理:在某些網站中提供了從其他服務器獲取數據的功能,攻擊者能通過構造惡意的URL參數,惡意利用后可作為代理攻擊遠程或本地的服務器。 二、SSRF的利用 1.對目標外網、內網進行端口掃描。 2.攻擊內網或本地的…

Selenium 4.0+ 版本的“正確使用”以及“驅動程序的正確安裝”

前言 本文是該專欄的第18篇,后面會持續分享python爬蟲干貨知識,記得關注。 你是否還在使用selenium 3.0+版本呢?如果還是在使用selenium的舊版本,那就好好看完這篇文章,讓你立刻使用上最新的selenium版本——selenium 4.0+版本。 我們都知道selenium是一個開源的Web自動…

python+Selenium以IE模式打開edge瀏覽器

一、修改ie的注冊表 計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones 下邊5個文件夾下的2500的值改成3 計算機\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones 下邊5個文件夾下的2…

全量知識系統問題及SmartChat給出的答復 之12 知識圖表設計

Q32. 畫一個圖表 今天,我們開始設計圖表,以便能直觀表示前面各種概念名相及其位置關系,發現其中的問題和錯誤。 先畫出一個3*3的表格,還有一根對角線(左上到右下),上面有列名,分別…

戲說c第二十六篇: 測試完備性衡量(代碼覆蓋率)

前言 師弟:“師兄,我又被鄙視了。說我的系統太差,測試不過關。” 我:“怎么說?” 師弟:“每次發布版本給程夏,都被她發現一些bug,太丟人了。師兄,有什么方法來衡量測試的…

css實現背景漸變疊加

線性漸變效果圖: .box{width: 100vw;height: 100vh;background:linear-gradient(to bottom,transparent,#fff 30%),linear-gradient(to right,pink,skyblue);}徑像漸變效果圖: .box{width: 100vw;height: 100vh;background:linear-gradient(to bottom,transparent,#…

【SVN】使用TortoiseGit刪除Git分支

使用TortoiseGit刪除Git分支 前言 平時我在進行開發的時候,比如需要開發一個新功能,這里以蘑菇博客開發服務網關-gateway功能為例 一般我都會在原來master分支的基礎上,然后拉取一個新的分支【gateway】,然后在 gateway分支上進…

MySQL學生成績管理系統based on C++ and Clion

mysql_free_result()函數的作用是釋放結果集的內存,是同步的,也就是要中斷一下 該實驗使用了MySQL鏈接數據庫的基本使用方法,具體使用了 MYSQL_RES 數據庫的mysql_store_result()函數的返回值是一個結果集,該函數的作用是檢索比…

langchain學習筆記(七)

RunnablePassthrough: Passing data through | 🦜?🔗 Langchain 1、RunnablePassthrough可以在不改變或添加額外鍵的情況下傳遞輸入。通常和RunnableParallel結合使用去分配數值給到字典的新鍵 兩種方式調用RunnablePassthrough (1&#…

FL Studio21編曲制作軟件中文版2024最新版本功能詳細介紹

一、軟件概述 FL Studio 21,全稱Fruity Loops Studio 21,是一款功能強大的編曲制作軟件,被廣泛應用于音樂創作、編曲、錄音、混音和后期制作等領域。其中文版為中國的音樂制作人和愛好者提供了更加便捷的操作體驗。 FL Studio 21 Win-安裝包…

探索ECMAScript語法的深度奧秘

隨著現代Web應用的崛起,ECMAScript(簡稱ES)成為了前端開發者的必備利器。ECMAScript定義了JavaScript的語法和基本結構,是JavaScript的標準規范。本文將深入探討ECMAScript語法的一些精妙之處,為讀者揭示其中的深度奧秘…

P10166 [DTCPC 2024] 環

解題思路 滿足的序列即為環若圖上有環,則代價為0若無環,則在圖上已有的邊在添加一條回邊可形成環對所有的點由小到大排序由于環的大小可以為2初值設為,先不管最小點之間是否有邊,反正不會更劣通過拓撲排序找環,在找環…

js:lodash template文件模板語法和應用

文檔 https://www.lodashjs.com/docs/lodash.templatehttps://lodash.com/docs/4.17.15#template 語法 <% VALUE %> 用來做不轉義插值&#xff1b;<%- VALUE %> 用來做 HTML 轉義插值&#xff1b;<% expression %> 用來描述 JavaScript 流程控制。 示例 …

AI技術大揭秘!你不可不知的頂級大模型

在這個數字化飛速發展的時代&#xff0c;AI大模型以其驚人的應用范圍和深遠的影響力&#xff0c;正逐漸成為各行各業的革命性力量。想象一下&#xff0c;在一個晴朗的午后&#xff0c;一個智能客服系統正輕松地處理著成千上萬的客戶咨詢&#xff0c;不僅回答速度快捷&#xff0…

http狀態,cookie、session、token的對比

http是無狀態的&#xff0c;也就是說斷開會話了服務器就不記得任何事情了&#xff0c;但這樣對于用戶會很麻煩&#xff0c;因為要不停輸入用戶名和密碼 cookie是放在瀏覽器里的數據&#xff0c;第一次訪問后服務器會set cookie&#xff0c;然后瀏覽器保存這個cookie&#xff0…

面向制造的設計

面向制造的設計&#xff08;Design for Manufacturing, DFM&#xff09;是一種設計方法論&#xff0c;它強調在產品設計階段就考慮制造過程中的各種約束和限制&#xff0c;以確保設計的可行性和可制造性。這種方法的目標是在產品設計的早期階段就優化設計方案&#xff0c;以減少…

win10如何添加指紋登陸

1、首先進入設置,進入下一個設置頁面 2、在下一個設置頁面內,我們直接使用右上角的搜索框,輸入“指紋/finger”進行搜索。回車之后進入設置指紋登陸選項 3、設置指紋登陸的前期是設置好你的密碼和pin碼(先要設定登錄密碼和pin碼),這里pin和密碼都可以直接登陸我們的win10,設…

qt 5.15版本安裝

1.qt5.15版本安裝 2.安裝慢時&#xff0c;切換到清華鏡像源&#xff1a;.\qt-unified-windows-x64-online.exe --mirror https://mirrors.tuna.tsinghua.edu.cn/qt/ 3.沒有qt 5.15版本在旁邊進行篩選&#xff0c;只選archive