Datawhale-爬蟲-Task5(selenium學習)
selenium簡介
什麼是Selenium?
- Selenium是最廣泛使用的開源Web UI(使用者介面)自動化測試套件之一。它最初由Jason Huggins於2004年開發,作為Thought Works的內部工具。 Selenium支援跨不同瀏覽器,平臺和程式語言的自動化。
- Selenium可以輕鬆部署在Windows,Linux,Solaris和Macintosh等平臺上。 此外,它支援iOS(iOS,Windows Mobile和Android)等移動應用程式的OS(作業系統)。
- Selenium通過使用特定於每種語言的驅動程式支援各種程式語言。Selenium支援的語言包括C#,Java,Perl,PHP,Python和Ruby。目前,Selenium Web驅動程式最受Java和C#歡迎。 Selenium測試指令碼可以使用任何支援的程式語言進行編碼,並且可以直接在大多數現代Web瀏覽器中執行。
- Selenium支援的瀏覽器包括Internet Explorer,Mozilla Firefox,Google Chrome和Safari。
- Selenium可用於自動化功能測試,並可與Maven,Jenkins和Docker等自動化測試工具整合,以實現持續測試。 它還可以與TestNG和JUnit等工具整合,以管理測試用例和生成報告。
如何下載selenium
- Windows下以管理員方式開啟命令提示符,輸入
pip install selenium
如下圖:
- 安裝成功後輸入
pip list
可以檢視到安裝的selenium版本:
Selenium WebDriver功能特性
- 多瀏覽器支援: Selenium WebDriver支援各種Web瀏覽器,如Firefox,Chrome,Internet Explorer,Opera等等。它還支援一些非傳統或罕見的瀏覽器,如HTMLUnit。
- 多程式語言支援: WebDriver還支援大多數常用的程式語言,如Java,C#,JavaScript,PHP,Ruby,Pearl和Python。 因此,使用者可以基於自己的能力選擇任何一種受支援的程式語言並開始構建測試指令碼。
- 速度: 與Selenium Suite的其他工具相比,WebDriver的執行速度更快。與RC不同,它不需要任何中間伺服器與瀏覽器通訊; 此工具直接與瀏覽器通訊。
- 簡單命令: Selenium WebDriver中使用的大多數命令都易於實現。 例如,要使用以下命令在WebDriver中啟動瀏覽器:
//java實現
WebDriver driver = new FirefoxDriver(); //(Firefox瀏覽器)
WebDriver driver = new ChromeDriver(); //(Chrome瀏覽器)
WebDriver driver = new InternetExplorerDriver(); //(Internet Explorer瀏覽器)
- WebDriver方法和類: WebDriver提供多種解決方案來應對自動化測試中的一些潛在挑戰。WebDriver還允許測試人員通過動態查詢器處理複雜型別的Web元素,如核取方塊,下拉選單和警報。
例項:使用selenium模擬登陸163郵箱。
注意點:
- Web應用中經常會遇到frame/iframe 表單巢狀頁面的應用,WebDriver 只能在一個頁面上對元素識別與定位,對於frame/iframe 表單內嵌頁面上的元素無法直接定位。這時就需要通過switch_to.frame()方法將當前定位的主體切換為frame/iframe 表單的內嵌頁面中
- 載入這個iframe需要一定時間,所以需要設一個等待直至獲取到標籤
- 163郵箱的賬號密碼區域的input標籤的id是自動生成的,每次都不能用,所以不能用於定位標籤,這裡參考網上的一種寫法直接通過find_element_by_name方法查詢賬號和密碼標籤即可。
作業程式碼:
from selenium import webdriver
from time import sleep
options = webdriver.ChromeOptions()
options.add_argument('disable-infobars')
jy = webdriver.Chrome()
jy.maximize_window()
jy.get('https://mail.163.com/')
sleep(3)
jy.switch_to.frame(jy.find_element_by_xpath("//iframe[starts-with(@id,'x-URS-iframe')]"))
jy.find_element_by_name("email").clear()
jy.find_element_by_name("email").send_keys('your user_name')
jy.find_element_by_name("password").clear()
jy.find_element_by_name("password").send_keys('your password')
jy.find_element_by_id("dologin").click()
sleep(10)
jy.close()
相關文章
- Datawhale-爬蟲-Task4(學習xpath)爬蟲
- selenium爬蟲學習1爬蟲
- Datawhale-爬蟲-Task1(學習get與post請求)爬蟲
- Datawhale-爬蟲-Task6(學習IP相關知識)爬蟲
- Datawhale-爬蟲-Task3(beautifulsoup)爬蟲
- Python爬蟲學習(9):Selenium的使用Python爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- 爬蟲學習日記(十一)selenium 頁面元素更新爬蟲
- 爬蟲學習日記(十)selenium frame的切換爬蟲
- Datawhale-爬蟲-Task2(正規表示式)爬蟲
- Datawhale-爬蟲-Task7(實戰大專案)爬蟲
- 爬蟲-selenium的使用爬蟲
- 爬蟲學習-初次上路爬蟲
- Python爬蟲之路-selenium在爬蟲中的使用Python爬蟲
- 【0基礎學爬蟲】爬蟲基礎之自動化工具 Selenium 的使用爬蟲
- 爬蟲學習之基於Scrapy的網路爬蟲爬蟲
- Android 淘寶 爬蟲 學習Android爬蟲
- 爬蟲學習日記(六)爬蟲
- 爬蟲學習日記(八)爬蟲
- 爬蟲學習日記(七)爬蟲
- 爬蟲學習日記(二)爬蟲
- 爬蟲學習日記(一)爬蟲
- 爬蟲學習日記(五)爬蟲
- 爬蟲學習日記(三)爬蟲
- python爬蟲學習1Python爬蟲
- 逆向爬蟲知識學習爬蟲
- 爬蟲學習日記(九)Selenium點選事件超時 改用執行JS爬蟲事件JS
- 什麼是爬蟲?學習Python爬蟲難不難?爬蟲Python
- 爬蟲學習之一個簡單的網路爬蟲爬蟲
- 分散式爬蟲學習筆記分散式爬蟲筆記
- Python爬蟲學習系列教程Python爬蟲
- 爬蟲之CSS語法學習爬蟲CSS
- 呼叫瀏覽器的爬蟲——selenium瀏覽器爬蟲
- Python爬蟲基礎之seleniumPython爬蟲
- python爬蟲是什麼?學習python爬蟲難嗎Python爬蟲
- 爬蟲學習日記(六)完成第一個爬蟲任務爬蟲
- 爬蟲學習筆記:練習爬取多頁天涯帖子爬蟲筆記
- Python爬蟲學習(6): 爬取MM圖片Python爬蟲