firefox

Http基础解析

牧云@^-^@ 提交于 2020-08-15 06:23:54
Http基础解析 ** 概念**:Hyper Text Transfer Protocol 超文本传输协议 * 传输协议:定义了,客户端和服务器端通信时,发送数据的格式 * 特点: 1. 基于TCP/IP的高级协议 2. 默认端口号:80 3. 基于请求/响应模型的:一次请求对应一次响应 4. 无状态的:每次请求之间相互独立,不能交互数据 历史版本: * 1.0:每一次请求响应都会建立新的连接 * 1.1:复用连接 请求消息数据格式 请求行 请求方式 请求url 请求协议/版本 GET /login.html HTTP/1.1 请求方式: HTTP协议有7中请求方式,常用的有2种 GET: 请求参数在请求行中,在url后。 请求的url长度有限制的 不太安全 POST: 请求参数在请求体中 请求的url长度没有限制的 相对安全 请求头:客户端浏览器告诉服务器一些信息 请求头名称: 请求头值 常见的请求头: User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息 可以在服务器端获取该头的信息,解决浏览器的兼容性问题 Referer: http://localhost/login.html 告诉服务器,我(当前请求)从哪里来? 作用: 防盗链: 统计工作: 请求空行 空行,就是用于分割POST请求的请求头,和请求体的。 请求体(正文): 封装POST请求消息的请求参数的

Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类/Python读取配置文件内容

半世苍凉 提交于 2020-08-15 04:00:25
封装一个自己的类-浏览器引擎类 前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器。这里我们暂时,支持三大浏览器(IE,Chrome,Firefox)。这里有一个前提条件,在基础篇中,启动三大浏览器的driver文件,检查下你的Python安装路径下有没有这三个driver插件,如果没有,请回到基础篇的如何启动火狐和IE浏览器文章去看看如何做。 我们继续在test1这个包下新建一个browser_engine.py文件,然后在另外一个包下新建一个test.py文件去测试这个浏览器引擎类是否工作正常。这个浏览器引擎类,我们一开始写简单一点,只写启动浏览器。 (海量免费学习资料,软件测试交流:1140267353群,还会有同行一起技术交流) 先看看browser_engine.py中的代码: # coding=utf-8 from selenium import webdriver class BrowserEngine(object): """ 定义一个浏览器引擎类,根据browser_type的值去,控制启动不同的浏览器,这里主要是IE,Firefox, Chrome """ def __init__ (self, driver): self.driver

Jquery的load加载本地文件出现跨域错误的解决方案

与世无争的帅哥 提交于 2020-08-15 01:55:04
如果用原生的AJAX是加载本地文件就不会出现错误。当然,这个jquery的load放在服务器上通过http加载还是支持的。也有例外比如在firefox和ie浏览器使用$.ajax加载本地html或txt文件时,不会报错。 当其他浏览器控制台弹出下面报错,表明这个不支持跨域浏览本地文件: Access to XMLHttpRequest at 'file:///F:/%E4%BB%A3%E7%A0%81/Jquery/a.txt' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https. 其实 ,禁止跨域是浏览器的安全限制机制,在每个浏览器下都有,如在chrome、Firefox、opera 、360 都是这样的,同样会报告上述错误,但是可以通过设置来绕过这个限制(如果经常 完前端代码 建议在本机装个web容器。。。),常见的方式是 右击chrome快捷方式,选择“属性”,在“快捷方式”下的“目标”中添加" --allow-file-access-from-files"(最前面有个空格),重启chrome即可如下: "C:

自动化测试面试题及答案大全(5)

混江龙づ霸主 提交于 2020-08-14 22:36:29
1.Selenium是否支持桌面应用软件的自动化测试。 Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据桌面元素的属性来定位的。 2.Selenium是否支持用例的执行的引擎。 引擎好比就是一个发动机。Selenium是没有关于测试用例和测试套件管理和执行的模块。我们需要借助第三方单元测试框架来实现用例管理和用例的执行。例如Java中有Junit或者testNG,Python中有unittest单元测试框架。 3.Seleinum是否有读取excel文件的库 没有,这里需要用到第三方工具。例如Apache POI插件。 4.Selenium有哪些组件? 最早的有Selenium IDE,IDE只支持安装在fiefox上一个插件,支持录制自动化脚本。还有 remote RC,和Grid 和webdriver。我们一般最重要的就是使用webdriver。 5.Selenium有什么限制或者缺陷 除了基于web的软件和mobile的程序,selenium不支持桌面软件自动化测试。软件测试报告,和用例管理只能依赖第三方插件,例如Junit/TestNG和unittest。由于它是免费的软件,所以没有供应商去提供支持和服务,有问题,只能求助selenium社区。还有一个就是

富文本编辑器的简单实现原理

☆樱花仙子☆ 提交于 2020-08-14 20:30:08
<!-- -- 富文本编辑器的简单实现原理 -- 参考文档: -- 1. w3cshool:https://www.w3cschool.cn/javascript/javascript-execcommand.html -- 2. 火狐开发者中心:https://developer.mozilla.org/zh-CN/docs/Web/API/Document/execCommand -- -- 要点:1. 添加div标签的一个属性contenteditable设置为true,使该div元素可编辑; -- 2. js调用document.execCommand(指令参数[命令], false, 动态参数[值])函数, -- 3. 函数中第二个参数应始终为false,因为参数为true会显示对话框,而火狐并不支持。 -- 4. document.execCommand("paste"); 为粘贴命令,浏览器默认未开启,需要在user.js配置文件中开启。 --> <! DOCTYPE html > < html > < head > < title > 富文本编辑器实现原理 </ title > < meta charset ="utf-8" > < meta name ="viewport" content ="width=device-width, initial-scale=1

ftp登陆工具,细数8个好用ftp登陆工具

我怕爱的太早我们不能终老 提交于 2020-08-14 20:27:30
推荐一 : 服务器管理工具 IIS7服务器管理工具是一款windows全系、Linux系统下链接并操控VPS、VNC、FTP等远程服务器、云服务器。 界面简单明了,操作易上手,功能强大,支持批量导入服务器,并批量打开,多窗口化管理,除此之外,加载本地硬盘、硬盘映射、加载服务器的声音,远程声卡读取等,完全实现各类场景使用,对于FTP链接界面,朋友FTP定时上传,定时下载(也可以说定时上传下载 定时备份),对于经常使用FTP的小伙伴来说,非常适用。 工具支持自动更新,压缩包只有7.62M,方便简洁,一步到位。 推荐二:WinSCP WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。.winscp也可以链接其他系统,比如linux系统。 推荐三:FireFTP 这是一个火狐的插件,必须在火狐Mozilla Firefox浏览器上面才能使用。 FireFTP是出品 LiteServe/LiteWeb/LiteFTP 等工具的公司新出的又一个简单小巧且容易上手的 FTP 客户端工具,支持多线程文件传输。 推荐四:xFTP Xftp是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS windows 用户能安全地在 UNIX/Linux 和

CSRF(跨站请求伪造攻击)漏洞详细说明

感情迁移 提交于 2020-08-14 13:45:38
Cross-Site Request Forgery(CSRF),中文一般译作跨站请求伪造。经常入选owasp漏洞列表Top10,在当前web漏洞排行中,与XSS和SQL注入并列前三。与前两者相比,CSRF相对来说受到的关注要小很多,但是危害却非常大。 通常情况下,有三种方法被广泛用来防御CSRF攻击:验证token,验证HTTP请求的Referer,还有验证XMLHttpRequests里的自定义header。鉴于种种原因,这三种方法都不是那么完美,各有利弊。 二 CSRF的分类 在跨站请求伪造(CSRF)攻击里面,攻击者通过用户的浏览器来注入额外的网络请求,来破坏一个网站会话的完整性。而浏览器的安全策略是允许当前页面发送到任何地址的请求,因此也就意味着当用户在浏览他/她无法控制的资源时,攻击者可以控制页面的内容来控制浏览器发送它精心构造的请求。 1、网络连接。例如,如果攻击者无法直接访问防火墙内的资源,他可以利用防火墙内用户的浏览器间接的对他所想访问的资源发送网络请求。甚至还有这样一种情况,攻击者为了绕过基于IP地址的验证策略,利用受害者的IP地址来发起他想发起的请求。 2、获知浏览器的状态。当浏览器发送请求时,通常情况下,网络协议里包含了浏览器的状态。这其中包括很多,比如cookie,客户端证书或基于身份验证的header。因此,当攻击者借助浏览器向需要上述这些cookie

2.属性篇(新增的一些属性)

一个人想着一个人 提交于 2020-08-14 12:46:35
# 2.属性篇 - 1. placeholder --实际应用中可用 用于input的提示信息 ```html <input type="text" placeholder="手机/邮箱/用户名"> ``` - 2. Calendar, date, time, email, color, range, url, search --实际应用中一般不使用,兼容性有问题 ```html <form> <!-- Calendar --> <input type="date"> <!-- chrome支持,Safari不支持,IE不支持 --> <input type="time"><!-- chrome支持,Safari不支持,IE不支持 --> <input type="week"><!-- chrome支持,Safari不支持,IE不支持 --> <input type="datetime-local"><!-- chrome支持,Safari不支持,IE不支持 --> <input type="number"> <!--限制输入为数字chrome支持,Safari不支持,IE不支持--> <input type="email"><!-- chrome,Firefox支持,Safari不支持,IE不支持 --> <input type="color"><!-- chrome支持

Python Webdriver 重新使用已经打开的浏览器实例

匆匆过客 提交于 2020-08-14 08:12:23
因为Webdriver每次实例化都会新开一个全新的浏览器会话,在有些情况下需要复用之前打开未关闭的会话。比如爬虫,希望结束脚本时,让浏览器处于空闲状态。当脚本重新运行时,它将继续使用这个会话工作。还就是在做自动化测试时,前面做了一大推操作,但是由于程序出错,重启时不用再继续前面复杂的操作。 个人觉得这种功能非常有用,但是官方居然没有提供这种功能的API,苦苦搜搜,在网上找了两个java版的http://blog.csdn.net/wwwqjpcom/article/details/51232302 和 http://woxiangbo.iteye.com/blog/2372683 看了下源码其实java和python的驱动原理过程都非常相似。 打开一个Chrome会话: from selenium import webdriver driver = webdriver.Chrome() 运行上面的脚本,它将启动浏览器并退出。因为没有调用 quit() 方法,所以浏览器会话仍会存在。但是代码里创建的 driver 对象已经不在了,理论上不能用脚本控制这个浏览器。它将变成一个僵尸浏览器,只能手动杀死它。 通过webdriver启动一个浏览器会话大概会有这样三个阶段: 1、启动的浏览器驱动代理(hromedriver,Firefox的驱动程序,等等); 2、创建一个命令执行器

HTTP头信息解读

别说谁变了你拦得住时间么 提交于 2020-08-14 06:28:49
正确的设置HTTP头部信息有助于搜索引擎判断网页及提升网站访问速度,本文为多篇“HTTP请求头相关文章”及《HTTP权威指南》一书的阅读后个人汇总整理版,以便于理解。 通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。 <a href="http://www.ecdoer.com/wp-content/uploads/2013/06/http.jpg" class="cboxElement" rel="example4" 2909"="" style="text-decoration: none; color: rgb(1, 150, 227);"> Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET、POST、PUT、DELETE。一个URL地址用于描述一个网络上的资源,而HTTP中的GET、POST、PUT、 DELETE就对应着对这个资源的查、改、增、删4个操作,我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 HTTP头信息解读