selenium简介
介绍:
  Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
功能:
框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。
使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。使用简单,可使用Java,Python等多种语言编写用例脚本。
优势:
  Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium 测试可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Chrome和 Firefox 中运行。其他测试工具都不能覆盖如此多的平台。使用 Selenium 和在浏览器中运行测试还有很多其他好处。
下面是主要的两大好处:
通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序。通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。Selenium 的核心,也称browser bot,是用 JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot 负责执行从测试脚本接收到的命令,测试脚本要么是用 HTML 的表布局编写的,要么是使用一种受支持的编程语言编写的。
为什么说跨境批量注册或者批量养号不能用selenium浏览器自动化?
这就要先说一下 防关联浏览器所防的关联是什么,其实就是伪装,修改或者组织浏览器指纹暴露设备ID 从而导致惩罚的一种软件程序。那么浏览器指纹有哪些呢?
一、 浏览器指纹
是的你没有看错,和人有指纹一样,Web客户端(这里主要指浏览器)也有自己的指纹信息。将这些信息综合分析计算后,可对客户端进行唯一性识别,进而锁定、追踪、了解网民行为和隐私数据, 进而做到精准广告投放,反薅羊毛等功效。
1. 基本指纹
基本指纹是任何浏览器都具有的特征标识,比如硬件类型(Apple)、操作系统(Mac OS)、用户代理(User agent)、系统字体、语言、屏幕分辨率、浏览器插件 (Flash, Silverlight, Java, etc)、浏览器扩展、浏览器设置 (Do-Not-Track, etc)、时区差(Browser GMT Offset)等众多信息,这些指纹信息“类似”人类的身高、年龄等,有很大的冲突概率,只能作为辅助识别。
2. 行为指纹
这里拿电商网站举例,我们浏览任意商品,停留页面的时长,经常购买的品类,商品的尺码大小等等都可以被记录在本地的cookie里作为行为指纹,帮助广告商精准投放广告,也可以帮助电商网站训练推荐模型为你做到精准推荐。所以“大数据可能比你还要了解你自己”可不是说说而已。
3. 高级指纹
基本指纹就像人的外貌、身高、体重、性别,很难从肉眼的角度去区分浏览器,那么高级指纹对于浏览器来说,就像DNA一般精准(不要害怕,也是有极限的)这里会着重介绍目前广泛使用的三大高级指纹:canvas指纹/WebGL指纹/Audio音频指纹。
1)canvas指纹
Canvas(画布)是HTML5中一种动态绘图的标签,可以使用其生成甚至处理高级图片,2014年9月,ProPublica报道:新型的Canvas指纹追踪正在被用到“上到白宫,下到YouPorn”等众多网站,其高级指纹的地位,可见一斑。
canvas指纹的生成过程大致如下:
利用画布绘制指定图案
使用canvas.toDataURL()的方法获得图片内容的base64编码
将其CRC校验码作为唯一性标识(对于PNG格式的图片,以块(chunk)划分,最后一块是32位CRC校验)
在众多博客中对canvas原理的介绍基本上是一句带过:
相同的HTML5 Canvas元素绘制操作,在不同操作系统、不同浏览器上,产生的图片内容不完全相同。在图片格式上,不同浏览器使用了不同的图形处理引擎、不同的图片导出选项、不同的默认压缩级别等。在像素级别来看,操作系统各自使用了不同的设置和算法来进行抗锯齿和子像素渲染操作。即使相同的绘图操作,产生的图片数据的CRC检验也不相同。
但是好像理解的还是不那么直观?
让我们稍微花一点篇幅来尽可能通俗的解释一下,例如:
我们在浏览器上看到的字体都是经过了字体微调才能在肉眼下表现一致,所谓字体微调其实就是一种特殊指令,让渲染算法在屏幕上绘出文字。因为电脑里的文字不是图像格式储存而是是像数学公式一样被储存的。
当电脑在屏幕上将数学公式绘成文字时,需要将数学公式渲染成由像素点组成的实际图像,并根据屏幕分辨率、像素点大小等参数生成,所以结果可能存在差异。这个时候不同的操作系统/浏览器会有不同的微调算法,使得同样的字母m在肉眼下表现一致,但是当我们放大到像素级别,就会看出细微的差别。
再比如抗锯齿渲染(边缘柔化技术),抗锯齿渲染是为了使两个对比明显的对象间交接平滑,这么做就避免了两个对象间的像素不够美观。在黑白图片中边缘加入了不同色调的灰色像素作为缓冲达到平滑效果。不同显卡驱动运行抗锯齿,结果也会不一样。这些差别肉眼同样分辨不出来,如果你仔细比对这些小像素点就能发现色会有轻微的差别。
跟前面一样肉眼无法分辨的差别计算机可以轻松识别。这就是为什么不同的电脑会产生不同的指纹。
2)WebGL指纹
有了canvas指纹的理解基础,WebGL就更好理解一些了,基本上是同样的原理,只不过这里会将画好的3D图像内容和WebGL的某些属性值绑定在一起(比如渲染图片用到的显卡提供商以及显卡型号,压缩等级等等)拼接成一个很长的字符串,哈希过后取得一个缩减过信息量却又保留了信息差的的字符串作为WebGL指纹
3)AudioContext指纹
HTML5提供给JavaScript编程用的Audio API则让开发者有能力在代码中直接操作原始的音频流数据,对其进行任意生成、加工、再造,诸如提高音色,改变音调,音频分割等多种操作,甚至可称为网页版的Adobe Audition。
其大致原理如下,方法有二:
生成特定的音频信息流,对其进行一系列操作后,计算SHA值作为指纹,音频输出到音频设备之前进行清除,用户毫无察觉。
生成特定的音频信息流,直接进行动态压缩,MD5哈希处理后得到音频指纹
之所以不同设备不同浏览器其音频指纹会有差异是因为主机/浏览器的硬件/软件的细微差别,导致音频信号的处理上的差异,相同机器上的同款浏览器产生相同的音频输出,不同机器或不同浏览器产生的音频输出会存在差异。
可以看出这三类高级指纹都是利用硬件或软件的差异,有的生成图片有的生成音频,然后计算不同的哈希值作为参考指纹.
4. 综合指纹
在互联网世界里,各种指纹的碰撞比比皆是,尤其是想mac这样的量产机,同一批次同一型号的mac,使用相同的浏览器就很有可能产生相同的“高级指纹”,存在一定的重复率,这个时候就需要结合上述的所有指纹,经过分析,计算最终的综合指纹作为判断。这样就可以大大降低碰撞率,极大提高客户端唯一性识别的准确性。
为什么说用防关联浏览器(指纹浏览器)最好不用selenium浏览器自动化?
浏览器指纹里包含了行为指纹,行为指纹就是识别到一个账号的鼠标运动轨迹,停留时间,以及点击热力图等等。
而所谓的防关联浏览器(也叫指纹浏览器),只是解决了浏览器指纹中的基本指纹和高级指纹,由于短时间内批量的selenium浏览器自动化,同质化的点击行为,导致防关联指纹浏览器无法解决浏览器指纹中的行为指纹,那就无法彻底实现浏览器指纹的伪装,为防关联的隔离效果大打折扣
最近亚马逊封店潮,目前判断就是亚马逊测评导致,而核心的问题就是在亚马逊测评的时候大量使用了selenium浏览器自动化,从而在亚马逊防关联系统判定中,通过某商家留评号倒推该账号的行为指纹,发现了行为指纹的关联问题导致封店。
如果解决行为指纹的关联呢?
鉴于目前亚马逊风控逐步升级,建议养号用户,不管是什么跨境平台,最好还是真人逐一操作,这样就避免了行为指纹的关联。
联系我们下载防关联系统:17602399866(同微) 2322004545

网站下载:zllp.myyjjjjj

原文来自邦阅网 (52by.com) - www.52by.com/article/59501

声明:该文观点仅代表作者本人,邦阅网系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系邦阅网或作者进行删除。

评论
登录 后参与评论
发表你的高见
88
服务介绍
专业化定制开发,外贸定制开发,社交群控开发等