Drissionpage VS Selenium】的更多相关文章

通过爬虫 获取 官方文档库 如果想获取 相应的库 修改对应配置即可 代码如下 from urllib.parse import urljoin import requests from lxml import etree def get_data(page_num, key, file_name): """ 解析 page_num: 爬取页数 key: 爬取的关键字 file_name: 存入的文件 """ headers = { 'author…
今天给大家推荐一款基于Python的网页自动化工具:DrissionPage.这款工具既能控制浏览器,也能收发数据包,甚至能把两者合而为一,简单来说:集合了WEB浏览器自动化的便利性和 requests 的高效率. 一.DrissionPage产生背景 实现网页自动化,会有两类形式: 直接向服务器发送请求数据包,获取需要的数据 模拟真实用户操作行为,控制浏览器跟网页进行交互 前者轻量级,速度快,例如requests 库.但requests面对需要登录的网站时,往往还要应付验证码.JS 混淆.签名…
熟悉的小伙伴知道我的工作有相当一部分是自动化,在探索相关的技术上一直没停下脚步,我痛恨selenium.playwright的非标准内核机制,也曾对clicknium引进了新的问题无语,以及接口爬取数据时踩不完的坑,无论是b端还是c端还是接口的探索到了瓶颈仿佛山穷水尽,直到我遇到了它--DrissionPage DrissionPage亮点 drissionpage的亮点在其代码库里介绍了一大堆,有喜欢的朋友可以自行查看:https://toscode.gitee.com/g1879/Driss…
一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉的时候监控http请求,看看请求是否有规律可以模拟.后来发现请求并没有规律,也就是不能够模拟http请求来获取新的数据(也可能是我水平有限,哪位童鞋找到了规律一定要告诉我哦).那么就只有模拟下拉操作了. 想要模拟下拉操作,我们需要用到两个工具,一个是PhatomJs,一个是Selenium. Pha…
 Page Object Model 简称POM  普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driver.get("http://mail.126.com") driver.find_element_by_id("idInput").clear() driver.find_element_by_id("idInput").send_keys(&qu…
Selenium webdriver是完全模拟用户在对浏览器进行操作,所有用户都是在页面进行的单击.双击.输入.滚动等操作,而webdriver也是一样,所以需要我们指定元素让webdriver进行单击.双击.输入等操作,所以元素定位是UI自动化测试的前提条件.可以联想到之前说的页面经常变动的项目为什么不适合进行UI自动化测试,如果元素一直在变动,你就要不停的修改代码,维护工作量太大,投入产出比就太低了. Selenium提供了8种定位方式: l Id l Name l Tag name l X…
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要通过修改部分代码的方式来覆盖这部分修改的内容,大大提高测试效率.但是后期代码维护需要一定的成本,如果系统属于表单比较多或者经常修改改动的系统不太适合使用自动化,因为这个维护成本太高:针对于一些相对比较成熟(改动不是很频繁)的系统和跑回归测试的系统很适合进行自动化测试. 性能自动化即使用性能测试工具(…
from selenium import webdriver     *固定开头     b=webdriver.Firefox()              *打开火狐浏览器    browser.quit()                     *退出火狐浏览器    b.get('http://www.baidu.com')      *打开一个网页    判断 url  (a.current_url),a.title  /找元素方式,          ele.clear()    …
前提:我用selenium IDE录制脚本,我用java写的脚本,如果大家想看的清楚明白推荐java/Junit4/Webdriver 我用的是java/TestNG/remote control 1.当编写完脚本的时候编译的时候提示java.lang.noclassdeffounderror:com/google/xxxxx错误的时候 解决方式:右键你的项目,选择属性,点击java build path 添加selenium-server-standard.jar 当然之前应该已经导入了sel…
第一.需要录制脚本,找个我也不说了.就是在firefox下下载一个selenium-IDE并且安装. 第二.在工具里找到selenium-IDE点击运行. 第三.默认是红色按钮点击状态的,接下来随便你在firefox里怎么操作了,他都会记录下来. 但是这里有一个问题,selenium只能重现在单页面的操作,倘若你的操作导致打开了一个新窗口网页,那么就无法进行重现了.但是脚本可以实现. 第四.保存(可有可无的操作),输出,按照自己喜欢的来,精通的来,我选择的是java/testNG 第五.为了录制…