《手把手教你》系列技巧篇(四十四)java+ selenium自动化测试处理https 安全问题或者非信任站点下篇(详解教程) 北京

摘要:
3.Chrome浏览器3.1代码设计3.2参考代码包课程;进口石油。WebDriver;进口penqa.selenium.chrome。铬河水;进口penqa.selenium.chrome。色度选项;/***@作者北京-红歌**关于手把手教学的提示(43)-java+硒自动化测试-处理https安全问题或不可信网站-第2部分**11月12日,2021*/publicclassSSLCertificate{publicstaticvoidmaintainthrowsException{ChromeOptions options=newChromeOptions();options.addArguments;System.setProperty;//使用功能设置选项WebDriverdriver=newChormeDriver;driver.manage().window().maximize();driver.get;}}}打开浏览器3.3运行代码1.运行代码,右键单击RunAS-˃JavaAppliance,控制台输出如下图所示:2.运行代码后计算机端浏览器的动作如下图所述:4.概述4.1 Chrome浏览器遇到的问题和解决方案1.像以前这样编写问题代码,现在无法运行,所以Macro改变了它的方法。

1.简介

    这一篇宏哥主要介绍webdriver在IE、Chrome和Firefox三个浏览器上处理不信任证书的情况,我们知道,有些网站打开是弹窗,SSL证书不可信任,但是你可以点击高级选项,继续打开不安全的链接。举例来说,想必大家都应该用过前几年的12306网站购票,点击新版购票,是不是会出现如下的界面。宏哥又找了一个https的页面,如下图所示:

《手把手教你》系列技巧篇(四十四)java+ selenium自动化测试处理https 安全问题或者非信任站点下篇(详解教程) 北京第1张

2.三种浏览器如何处理不受信任的证书

三种浏览器访问网页,弹出证书不信任,需要点击下信任继续访问才行,多为访问https的网页。那么我们在做自动化测试的时候,如何跳过这一步骤,直接访问到我们需要的页面了,这个就是宏哥主要分享和讲解的如何在三大浏览器跳过这一步骤。

3.Chrome浏览器

3.1代码设计

《手把手教你》系列技巧篇(四十四)java+ selenium自动化测试处理https 安全问题或者非信任站点下篇(详解教程) 北京第2张

3.2参考代码

package lessons;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;


/**
 * @author 北京-宏哥
 * 
 * 《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
 *
 * 2021年11月12日
 */
public class SSLCertificate {
    
    public static void main(String[] args) throws Exception {
        
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--ignore-certificate-errors");
        System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe"); 
         
        // 打开带capability设置选项的浏览器
        WebDriver driver=new ChromeDriver(options);
        driver.manage().window().maximize();
        driver.get("https://www.21xrx.com/");
        
    }

}

3.3运行代码

1.运行代码,右键Run AS->Java Appliance,控制台输出,如下图所示:

《手把手教你》系列技巧篇(四十四)java+ selenium自动化测试处理https 安全问题或者非信任站点下篇(详解教程) 北京第3张

2.运行代码后电脑端的浏览器的动作,如下小视频所示:

4.小结

4.1Chrome浏览器遇到问题及解决办法

1.Chrome以前遇到这种问题代码这么写,就可以现在就不行了,所以宏哥也换了一种方式。

package lessons;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

/**
 * @author 北京-宏哥
 * 
 * 《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
 *
 * 2021年11月12日
 */
public class SSLCertificate {
    
    public static void main(String[] args) throws Exception {
        
         // 创建DesiredCapabilities类的一个对象实例
        DesiredCapabilities cap=DesiredCapabilities.chrome();
         
        // 设置变量ACCEPT_SSL_CERTS的值为True
        cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
         
        System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe"); 
         
        // 打开带capability设置选项的浏览器
        WebDriver driver=new ChromeDriver(cap);
        driver.manage().window().maximize();
        driver.get("https://www.21xrx.com/");
        System.out.println(" 嘿嘿!宏哥,你已经成功跳过证书信任步骤啦!");
    }

}

但是运行代码。Chrome动作(没有跳过证书认证这一步骤)如下视频所示:

4.2Chrome的options参数

Chrome Options参数收集---------------------------


-《手把手教你》系列技巧篇(四十四)java+ selenium自动化测试处理https 安全问题或者非信任站点下篇(详解教程)  北京第4张

0 --purge-memory-button 在Chrome的任务管理器中增加内存清理功能 


序号    参数    说明
1    --allow-outdated-plugins     不停用过期的插件。
2    --allow-running-insecure-content     默认情况下,https 页面不允许从 http 链接引用 javascript/css/plug-ins。添加这一参数会放行这些内容。
3    --allow-scripting-gallery     允许拓展脚本在官方应用中心生效。默认情况下,出于安全因素考虑这些脚本都会被阻止。
4    --disable-accelerated-video     停用 GPU 加速视频。
5    --disable-dart     停用 Dart。
6    --disable-desktop-notifications     禁用桌面通知,在 Windows 中桌面通知默认是启用的。
7    --disable-extensions     禁用拓展。
8    --disable-file-system     停用 FileSystem API。
9    --disable-preconnect     停用 TCP/IP 预连接。
10    --disable-remote-fonts     关闭远程字体支持。SVG 中字体不受此参数影响。
11    --disable-speech-input     停用语音输入。
12    --disable-web-security     不遵守同源策略。
13    --disk-cache-dir     将缓存设置在给定的路径。
14    --disk-cache-size     设置缓存大小上限,以字节为单位。
15    --dns-prefetch-disable     停用DNS预读。
16    --enable-print-preview     启用打印预览。
17    --extensions-update-frequency     设定拓展自动更新频率,以秒为单位。
18    --incognito     让浏览器直接以隐身模式启动。
19    --keep-alive-for-test     最后一个标签关闭后仍保持浏览器进程。(某种意义上可以提高热启动速度,不过你最好得有充足的内存)
20    --kiosk     启用kiosk模式。(一种类似于全屏的浏览模式)
21    --lang     使用指定的语言。
22    --no-displaying-insecure-content     默认情况下,https 页面允许从 http 链接引用图片/字体/框架。添加这一参数会阻止这些内容。
23    --no-first-run     跳过 Chromium 首次运行检查。
24    --no-referrers     不发送 Http-Referer 头。
25    --no-sandbox     彻底停用沙箱。
26    --no-startup-window     启动时不建立窗口。
27    --proxy-pac-url     使用给定 URL 的 pac 代理脚本。(也可以使用本地文件,如 --proxy-pac-url="file:\\\c:\proxy.pac"28    --proxy-server     使用给定的代理服务器,这个参数只对 http 和 https 有效。(例如 --proxy-server=127.0.0.1:808729    --single-process     以单进程模式运行 Chromium。(启动时浏览器会给出不安全警告)
30    --start-maximized     启动时最大化。
31    --user-agent     使用给定的 User-Agent 字符串

参数:--user-data-dir=UserDataDir
用途:自订使用者帐户资料夹(如:–user-data-dir="D:\temp\Chrome User Data")
参数:--process-per-tab
用途:每个分页使用单独进程
参数:--process-per-site
用途:每个站点使用单独进程
参数:--in-process-plugins
用途:插件不启用单独进程

参数:--disable-popup-blocking
用途:禁用弹出拦截
参数:--disable-javascript
用途:禁用JavaScript
参数:--disable-java
用途:禁用Java
参数:--disable-plugins
用途:禁用插件
参数:–disable-images
用途:禁用图像
参数:--omnibox-popup-count=”num”
用途:将网址列弹出的提示选单数量改为num个
参数:--enable-vertical-tabs
用途:调整chrome游览器标签存放在左边,非顶部

5.扩展

5.1Safari浏览器(参考代码,没有亲自实践)

// Create object of DesiredCapabilities class
 
DesiredCapabilities cap=DesiredCapabilities.safari();
 
// Set ACCEPT_SSL_CERTS  variable to true
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
 
// Set the driver path
System.setProperty("webdriver.safari.driver","Safari driver path");
 
// Open browser with capability
WebDriver driver=new SafariDriver(cap);

6.总结

其实这一类问题,直接就用宏哥在IE浏览器那种执行JavaScript脚本的方法,无论遇到什么浏览器都可以解决的,就会这一招就可以打遍天下无敌手了。

免责声明:文章转载自《《手把手教你》系列技巧篇(四十四)java+ selenium自动化测试处理https 安全问题或者非信任站点下篇(详解教程) 北京》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Discuz论坛密码加密方式详解扩展Linux网络栈下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

dns缓存刷新时间是多久?dns本地缓存时间介绍

原文: http://www.winwin7.com/JC/4742.html dns缓存刷新时间是多久?一般来说,我们只知道DNS解析是互联网绝大多数应用的实际寻址方式,在我们打开某站点,DNS返回了正确的IP之后,此时系统会将dns缓存保存到本地,当我们再次访问该站点的时候会自动调用本地保存的dns缓存从而达到立马打开网页,速度非常快!但是dns缓存文...

Robot Framework安装环境与导入自定义py模块

①安装python2.7 虽然python2.7据说已经停止更新,但是还是要继续用。 官网下载: https://www.python.org/downloads/windows/ 添加环境变量,将C:Python27和C:Python27Scripts(python2.7安装路径)添加到系统环境变量Path后面。 ②安装Robot Framework...

软件设计原则

在软件开发中,为了提高软件系统的可维护性、扩展性、复用性,程序员在日常开发的时候应当遵循一些软件设计原则,从而提高软件的开发效率和提升软件的生命力 1、依赖倒转原则 高层模块不应该依赖低层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象,简单的说就是要求对抽象进行编程,不要对实现进行编程 2、接口隔离原则 客户端不应该被迫依赖它不使用的方法...

oracle11g-rac安装部署

网上11g rac安装文档大多不详细,今天来一个详细的! 纯操作文档,不喜勿喷!! 环境:   系统:rhel5.5   oracle:11.2.03   双网卡   共享磁盘 ip地址和主机名规划:   #节点1 主机名:rac1   #节点2 主机名:rac2   192.168.56.11   rac1  192.168.56.22   rac2  ...

C#操作Excel无法删除worksheet解决方案

解决方案:由于删除sheet会弹出一个是否删除的对话框,因此需要将该对话框去掉。  C# //建立一个Excel.Application的新进程 Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Wor...

Linux环境下非root用户安装Python3

安装python-3.8.1: 系统环境:Centos 7 在python官网上下载相应的Linux版本:https://www.python.org/downloads/source/。这里首先安装Python-3.8.1,下载,解压: wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.t...