package com.packt.webdriver.chapter7;
public class TestScriptUsingJSONWireProtocol {
public static void main(String... args){
HttpClient httpClient = new DefaultHttpClient();
HttpResponse response=null;
String searchBox = null;
String searchButton = null;
HttpPost postMethod = null;
HttpGet getMethod = null;
HttpDelete deleteMethod = null;
try {
// Create a session with RemoteWebDriver
// to open Firefox
postMethod = new HttpPost("http://10.172.10.1:4444/wd/hub/session");
StringEntity input=null;
JSONObject jo=new JSONObject();
jo.put("browserName","firefox");
JSONObject caps = new JSONObject();
caps.put("desiredCapabilities", jo);
System.out.println(caps.toString());
input = new StringEntity(caps.toString());
input.setContentEncoding("UTF-8");
input.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
postMethod.setEntity(input);
//postMethod.set
response = httpClient.execute(postMethod);
//Get Sessions
httpClient = new DefaultHttpClient();
getMethod = new HttpGet("http://10.172.10.1:4444/wd/hub/sessions");
response = httpClient.execute(getMethod);
JSONObject json = new JSONObject(response.getEntity().getContent());
System.out.println(json.toString());
String sessionId = new JSONObject(json.getString("value").substring(1, json.getString("value").length()-1)).getString("id");
System.out.println("Current SessionId is: "+sessionId);
// Navigate to Google Search Page
httpClient = new DefaultHttpClient();
postMethod = new HttpPost("http:// 10.172.10.1:4444/wd/hub/session/"+sessionId+"/url");
jo=new JSONObject();
jo.put("url","http://www.google.com");
input = new StringEntity(jo.toString());
input.setContentEncoding("UTF-8");
input.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
postMethod.setEntity(input);
response = httpClient.execute(postMethod);
// Find SearchBox Element
httpClient = new DefaultHttpClient();
postMethod = new HttpPost("http:// 10.172.10.1:4444/wd/hub/session/"+sessionId+"/element");
jo=new JSONObject();
jo.put("using","name");
jo.put("value","q");
input = new StringEntity(jo.toString());
input.setContentEncoding("UTF-8");
input.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
postMethod.setEntity(input);
response = httpClient.execute(postMethod);
json = new JSONObject(response.getEntity().getContent());
System.out.println(json.toString());
String searchBoxId = json.getJSONObject("value").getString("ELEMENT");
System.out.println("SearchBox Id is : "+ searchBoxId);
//Click on SearchBox
httpClient = new DefaultHttpClient();
postMethod = new HttpPost("http:// 10.172.10.1:4444/wd/hub/session/"+sessionId+"/element/"+searchBoxId+"/click");
response = httpClient.execute(postMethod);
// Type Packt Publishing in SearchBox
httpClient = new DefaultHttpClient();
postMethod = new HttpPost("http:// 10.172.10.1:4444/wd/hub/session/"+sessionId+"/element/"+searchBoxId+"/value");
jo=new JSONObject();
jo.put("value",Arrays.asList(new String[]{"packt publishing"}));
input = new StringEntity(jo.toString());
input.setContentEncoding("UTF-8");
input.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
postMethod.setEntity(input);
response = httpClient.execute(postMethod);
// End the Session
httpClient = new DefaultHttpClient();
deleteMethod = new HttpDelete("http:// 10.172.10.1:4444/wd/hub/session/"+sessionId);
//response = httpClient.execute(deleteMethod);
} catch (Exception e) {
e.printStackTrace();
}
}
}
《Selenium WebDriver实战指南》是一本深入探讨自动化测试技术的书籍,主要聚焦于Selenium WebDriver这一流行的Web自动化测试工具。Selenium WebDriver是一个开源的、跨平台的API,它允许开发者编写可运行在不同浏览器上的测试脚本,以验证网页应用程序的功能和行为。这本书的源代码提供了实践案例和示例,帮助读者更好地理解和应用书中的理论知识。 Selenium WebDriver的核心概念包括: 1. WebDriver API:这是一个统一的接口,允许测试脚本与不同的浏览器进行交互。它提供了丰富的命令集,如打开浏览器、导航、点击元素、输入文本等。 2. 浏览器驱动程序:WebDriver需要与特定的浏览器驱动程序配合工作,比如ChromeDriver用于谷歌浏览器,GeckoDriver用于Firefox。驱动程序是WebDriver和浏览器之间的桥梁,使得自动化脚本能够控制浏览器的行为。 3. 跨平台性:Selenium WebDriver支持多种操作系统(如Windows、Mac、Linux)和浏览器(如Chrome、Firefox、Edge、IE等),这使得测试脚本具有很高的可移植性。 4. Page Object模式:这是一种设计模式,提倡将页面元素和它们的操作封装成对象,便于维护和扩展测试脚本。书中的源代码可能会包含各种Page Object类,每个类代表一个网页,并包含页面上的元素和相关操作。 5. 集成开发环境(IDE)支持:Selenium提供了一个插件,可以在Firefox或Chrome中录制和回放测试用例,这对于初学者来说是个很好的起点。 6. 断言和异常处理:在测试中,断言用于验证预期结果是否与实际结果相符。源代码中会包含许多断言语句,如assertEquals(),确保测试的准确性。同时,异常处理机制用于捕获和处理可能在执行过程中出现的问题。 7. 数据驱动测试:这种方法将测试数据与测试逻辑分离,使得同一测试脚本可以应用于不同的数据输入。书中的例子可能涉及如何读取数据文件(如CSV或Excel)并将其用于测试。 8. 并行测试:通过使用像TestNG或JUnit这样的测试框架,可以并行运行测试以提高测试效率。书中的代码可能展示了如何配置和执行并行测试。 9. Page Factory模式:Selenium提供的一种优化Page Object模式的方法,它自动将元素查找延迟到实际需要时才执行,提高了性能。 10. 自定义等待:除了标准的隐式和显式等待,还可以编写自定义等待策略来更精确地控制何时继续执行测试脚本,避免因页面加载时间不一致导致的错误。 《Selenium WebDriver实战指南》的源代码提供了丰富的实践场景,涵盖了从基础的元素定位和交互,到复杂的测试设计和执行策略。通过学习和分析这些代码,读者可以深入理解Selenium WebDriver的工作原理,提升自动化测试技能。






















































































































- 1
- 2

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整
- lingluo2312017-06-30例子都是对应书中每个章节的,例子很简略
- hai69852015-06-14以为是书呢。下载错了。

- 粉丝: 2
- 资源: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于MATLAB Simulink与DSP28335开发板的步进电机驱动模型(详细教程及操作指南),基于MATLAB Simulink与DSP28335的步进电机驱动模型搭建指南(配套资料),基于MA
- 碳交易机制下的综合能源系统优化运行研究:考虑需求响应与能源转换的低碳优化模型仿真验证,碳交易机制下的综合能源系统优化运行:考虑需求响应与能效提升的策略研究(基于MATLAB+CPLEX仿真平台),碳交
- 西门子PLC S7-1200实例教程:博图V15及以上版本下的通讯与伺服电机控制详解,西门子PLC S7-1200实例教程:博图V15及以上版本下的TCP IP通讯与伺服电机控制,联动交互与传感器参数
- 多样优化算法下的支持向量机SVM分类与回归预测:基于粒子群等优化算法的实践应用与Matlab实现,多种优化算法加持的支持向量机分类与回归预测:SSVM新系列Matlab实现,支持向量机svm psos
- DSP-llc数字半桥电源与原理图:解析并优化llc电源设计的dsp控制源代码与matncad参数计算过程,DSP控制的LLC数字半桥电源:源码与原理图详解及matncad参数计算过程,DSP-llc
- COMSOL几何光学模型: 精准光学折射分析与液面高度传感技术应用,基于COMSOL几何光学模型的液面高度传感光学折射系统研究与应用,COMSOL几何光学模型:光学折射-液面高度传感 ,COMSOL
- 这是一幅动漫风格的插画,画中有一位女孩 她有金色的眼睛和长长的黑发,头上戴着花环 身穿蓝白相间的衣服,衣服上有蕾丝花边装饰 女孩手中捧着一朵白色的花 背景是一片花田,阳光明媚,给人一种宁静与自然感觉
- Labview YOLOv5 TensorRT(shouxieai版)快速推理:多线程支持,pt转onnx转trtmodel,视频图片识别,转换速度仅需6ms内,Labview YOLOv5 Tens
- Labview结合Yolov5与TensorRT(wangxingyu版)实现快速并行推理,dll封装与调用,模型转换至Engine并支持视频图片识别,6ms极速响应,Labview结合Yolov5与
- driverirqlnotlessorequal蓝屏.txt
- clock watchdog timeout 蓝屏.txt
- python蓝屏代码.txt
- video_tdr_failure蓝屏代码.txt
- vmware12启动虚拟机蓝屏.txt
- vmware15启动虚拟机蓝屏.txt
- vmware启动时虚拟机蓝屏.txt


