前言
大家好,我是空空star,本篇给大家分享一下
《技能树-网络爬虫-selenium》
。
一、selenium
Selenium是web自动化测试工具集,爬虫可以利用其实现对页面动态资源的采集,对于其这种说法错误的是:
A.selenium本质是驱动浏览器来发送请求,模拟浏览器的行为
B.页面执行 js 才能呈现的内容,可以使用 selenium 来协助采集
C.请求之后往往需要等待一段时间,等待资源加载渲染完成
D.selenium和requests一样,都能用来采集数据,具有同等的速度
分析:
A是对的,Selenium是一个自动化测试工具,可以通过编程语言(如Python、Java)来驱动浏览器,模拟人工操作来访问网页并获取数据。
B是对的,有execute_script()方法;
C是对的,可以通过显示等待、隐式等待、强制等待设置等待时间;
D是错的,Selenium不能像requests那样直接发送HTTP请求,而是通过模拟用户在浏览器上的操作来访问网页,因此相对来说会比requests更慢一些。
二、selenium 测试用例
Selenium 是web自动化测试工具集,爬虫可以利用其实现对页面动态资源的采集。请按顺序操作:
- 安装 Python Selenium 包:pip install selenium
- 安装 Chrome 驱动:https://npm.taobao.org/mirrors/chromedriver/,如果使用别的浏览器需要下载对应浏览器的驱动
- 编写使用 python unittest 测试使用 selenium 完成自动化
selenium 自动化网页测试的操作:
- 使用 selenium 的Chrome 驱动,打开 CSDN 首页,此时会打开 Chrome 浏览器测试页面
- 验证字符串 “CSDN” 在页面标题
- 找到网页里的搜索框
- 输入"OpenCV技能树"
- 输入回车,搜索结果
- 等待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): 请正确实现浏览器自动化测试需求
time.sleep(10)
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()
以下代码实现正确的是?
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.文章来源:https://www.toymoban.com/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文章来源地址https://www.toymoban.com/news/detail-600454.html
总结
到了这里,关于技能树-网络爬虫-selenium的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!