前言
大家好,我是空空star,本篇給大家分享一下
《技能樹-網(wǎng)絡(luò)爬蟲-selenium》
。
一、selenium
Selenium是web自動化測試工具集,爬蟲可以利用其實現(xiàn)對頁面動態(tài)資源的采集,對于其這種說法錯誤的是:
A.selenium本質(zhì)是驅(qū)動瀏覽器來發(fā)送請求,模擬瀏覽器的行為
B.頁面執(zhí)行 js 才能呈現(xiàn)的內(nèi)容,可以使用 selenium 來協(xié)助采集
C.請求之后往往需要等待一段時間,等待資源加載渲染完成
D.selenium和requests一樣,都能用來采集數(shù)據(jù),具有同等的速度
分析:
A是對的,Selenium是一個自動化測試工具,可以通過編程語言(如Python、Java)來驅(qū)動瀏覽器,模擬人工操作來訪問網(wǎng)頁并獲取數(shù)據(jù)。
B是對的,有execute_script()方法;
C是對的,可以通過顯示等待、隱式等待、強制等待設(shè)置等待時間;
D是錯的,Selenium不能像requests那樣直接發(fā)送HTTP請求,而是通過模擬用戶在瀏覽器上的操作來訪問網(wǎng)頁,因此相對來說會比requests更慢一些。
二、selenium 測試用例
Selenium 是web自動化測試工具集,爬蟲可以利用其實現(xiàn)對頁面動態(tài)資源的采集。請按順序操作:
- 安裝 Python Selenium 包:pip install selenium
- 安裝 Chrome 驅(qū)動:https://npm.taobao.org/mirrors/chromedriver/,如果使用別的瀏覽器需要下載對應瀏覽器的驅(qū)動
- 編寫使用 python unittest 測試使用 selenium 完成自動化
selenium 自動化網(wǎng)頁測試的操作:
- 使用 selenium 的Chrome 驅(qū)動,打開 CSDN 首頁,此時會打開 Chrome 瀏覽器測試頁面
- 驗證字符串 “CSDN” 在頁面標題
- 找到網(wǎng)頁里的搜索框
- 輸入"OpenCV技能樹"
- 輸入回車,搜索結(jié)果
- 等待10秒退出
代碼框架如下:
# -*- coding: UTF-8 -*-
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
class PythonOrgSearch(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
def test_search_in_python_org(self):
# TODO(You): 請正確實現(xiàn)瀏覽器自動化測試需求
time.sleep(10)
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()
以下代碼實現(xiàn)正確的是?
A.
def test_search_in_python_org(self):
driver = self.driver
driver.get("https://www.csdn.net/")
self.assertIn("CSDN", driver.title)
elem = driver.find_element_by_id("toolbar-search-input")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
time.sleep(10)
B.
def test_search_in_python_org(self):
driver = self.driver
driver.get("https://www.csdn.net/")
self.assertIn("CSDN", driver.title)
elem = driver.find_element_by_id("toolbar-search-input")
elem.send_keys("OpenCV技能樹")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
time.sleep(10)
C.
def test_search_in_python_org(self):
driver = self.driver
driver.get("https://www.csdn.net/")
self.assertIn("CSDN", driver.title)
elem = driver.find_element_by_id("toolbar-search-input")
elem.send_keys("OpenCV技能樹")
assert "No results found." not in driver.page_source
time.sleep(10)
D.文章來源:http://www.zghlxwxcb.cn/news/detail-600454.html
def test_search_in_python_org(self):
driver = self.driver
driver.get("https://www.csdn.net/")
self.assertIn("CSDN", driver.title)
elem = driver.find_element_by_name("toolbar-search-input")
elem.send_keys("OpenCV 技能樹")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
time.sleep(10)
分析:
A是錯的,沒有向輸入框輸入 OpenCV技能樹;
B是對的;
C是錯的,沒有回車查詢;
D是錯的,定位方式不對,通過下圖可以看到輸入框的 id="toolbar-search-input"并不是name文章來源地址http://www.zghlxwxcb.cn/news/detail-600454.html

總結(jié)
到了這里,關(guān)于技能樹-網(wǎng)絡(luò)爬蟲-selenium的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!