用java自动化访问百度测试_java+eclipse+selenium+百度搜索设置自动化测试

在eclipse中新建一个项目baidutest;再在src文件夹中新建一个包com.baidutest.homework;再在包中新建一个java类baidusetting,并设置为静态类;最后在项目中新建一个lib文件夹,将selenium的所有架包拷贝到lib文件夹中,并设置选中项目baidutest,右键选择Bulid Path->Configure Bulid Path,将lib中的所有架包添加到Libraries中。至此selenium包配置完毕。

有什么疑惑可以参照百度经验:eclipse+java添加外部架包

现在要做的是:打开百度页面,点击设置中的搜索设置,修改搜索设置中的选项。代码如下:

package com.baidutest.homework;

import org.openqa.selenium.support.ui.Select;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

import org.openqa.selenium.Alert;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.By.ById;

import java.util.*;//保证List使用正确

public class baidusetting {

public static void main(String[] args) throws InterruptedException {

// TODO Auto-generated method stub

//告诉计算机浏览器驱动在哪里

System.setProperty("webdriver.chrome.driver",

"C:\\Users\\Dell\\Downloads\\chromedriver.exe");

WebDriver driver=new ChromeDriver();

//访问百度网址

driver.get("https://www.baidu.com/");

driver.manage().window().maximize();//窗口最大化

//模拟将鼠标放置在搜索上

Actions action=new Actions(driver);

action.moveToElement(driver.findElement(By.xpath("//*[@id=\"u1\"]/a[8]"))).perform();

Thread.sleep(2000);

driver.findElement(By.linkText("搜索设置")).click();

Thread.sleep(2000);

//此时有两个页面,一个是百度页面,一个是搜索设置页面

String handle_baidu=driver.getWindowHandle();

System.out.println("当前页面的标题为:"+driver.getTitle());//打印目前页面的标题

//如果当前的窗口句柄数不为1,则执行切换窗口

if (driver.getWindowHandles().size()!=1) {

//循环遍历,找到登录页面的句柄,并切换到登录页面

for (String handles:driver.getWindowHandles())

{

if (handles.equals(handle_baidu)) {

continue;

}

driver.switchTo().window(handles);//切换到登录页面

}

System.out.println("切换之后页面的标题为:"+driver.getTitle());//打印目前页面的标题

}

//搜索框提示

if (driver.findElement(By.id("s1_2")).isSelected()==false) {

driver.findElement(By.id("s1_2")).click();

}

Thread.sleep(1000);

//搜索语言范围

List radios=driver.findElements(By.name("SL"));

if (radios.get(1).isSelected()==false) {

radios.get(1).click();

}

Thread.sleep(1000);

//搜索结果显示条数

Select select=new Select(driver.findElement(ById.cssSelector("select[name='NR']")));

select.selectByIndex(1);//选择每页显示20条

Thread.sleep(2000);

//实时预测功能

Select select_yuce=new Select(driver.findElement(ById.cssSelector("select[name='issw1']")));

select_yuce.selectByVisibleText("关闭");//选择关闭实时预测功能

Thread.sleep(1000);

//搜索历史记录

if (driver.findElement(By.id("sh_1")).isSelected()==false) {

driver.findElement(By.id("sh_1")).click();

}

Thread.sleep(1000);

//通栏浏览模式

if (driver.findElement(By.id("stb_2")).isSelected()==false) {

driver.findElement(By.id("stb_2")).click();

}

Thread.sleep(1000);

driver.findElement(By.xpath("//*[@id=\"gxszButton\"]/a[1]")).click();

Thread.sleep(2000);//停顿2秒

//处理弹出框

Alert alert=driver.switchTo().alert();

alert.accept();//. accept() 相当于点击它的"确认";. dismiss() 相当于点击"取消"或者叉掉对话框

Thread.sleep(3000);//停顿3秒

driver.quit();

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内存泄漏以及常见的解决方法

之所以撰写这篇文章是由于前段时间花费了非常大的精力在已经成熟的代码上再去处理memory leak问题。写此的目的是希望我们应该养成良好的编码习惯,尽可能的避免这种问题,由于当你对着一大片的代码再去处理此类的问题,此时无疑添加了解决的成本…

python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜实例代码

首先找到要下载的歌曲排行榜的链接,这里用的是:https://music.163.com/discover/toplist?id3778678然后更改你要保存的目录,目录要先建立好文件夹,例如我的是保存在D盘-360下载-网易云热歌榜文件夹内,就可以完成下载。…

java thread 名称_Thread类常用方法之设置线程名称

package com.itheima.demo02.setName;/*设置线程的名称:(了解)1.使用Thread类中的方法setName(名字)void setName(String name) 改变线程名称,使之与参数 name 相同。2.创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类,让…

HDU 1108 最小公倍数

最小公倍数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 32794 Accepted Submission(s): 18303Problem Description给定两个正整数,计算这两个数的最小公倍数。Input输入包括多组測试数据&#…

Java为xml跟节点添加子节点_如何将xml节点作为第一个子节点插入Java中的另一个xml文档中?...

小编典典如果事实证明我只是为您做功课,我会感到非常恼火。package com.akonizo.examples;import java.io.ByteArrayInputStream;import java.io.StringWriter;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import j…

成员变量和局部变量的区别_Java 变量类型

点击上方“蓝字”带你去看小星星今天主要学习Java变量类型,主要是局部变量、实例变量和类变量(静态变量)。Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:type identifier [ value][, identifier [ value] ...] ;格式说明…

java gson序列化_java – Gson多态序列化

使用Gson 2.2.2我正在尝试序列化POJO(行为)的数组列表.我有一个适配器几乎是我在网上看到的副本:public class BehaviorAdapter implements JsonSerializer {private static final String CLASSNAME "CLASSNAME";private static final String INSTANCE …

【云图】如何制作附近实体店的地图?-微信微博支付宝

【云图】如何制作附近实体店的地图?-微信微博支付宝 原文:【云图】如何制作附近实体店的地图?-微信微博支付宝 摘要: 附近连锁店地图与全国连锁店地图,最大的区别就是: 1、附近连锁店地图需要先定位,然后搜…

php curl跨域cookie_PHP curl模拟文件上传(接口请求实现跨域文件中转)

3e2f08c0c11a8416dd107bbfc9159718.jpg客户端代码请求参数参数类型参数说明$urlstringpost提交的服务器url路径$data数组表单数据$files数组表单文件public function curl_custon_postfields($url, array $data array(), array $files array()){$curlfiles array();foreach …

oracle 分页_80分页查询,不止写法

据孔老先生说,茴香豆的茴字有四种写法,那oracle的分页查询又有多少种写法呢?分页查询,其实本质上就是topN查询的变种, 如果把topN的一部分结果集去掉,就变成了分页.topN的基本写法,两层select,第一层先order by,第二层再用rownum:select owner,object_name,object_id,rownum a…

笔记:Hadoop权威指南 第1章 初识Hadoop

大数据处理遇到问题: (1)、磁盘存储容量快速增加,但是访问速度进步不大;用户乐意使用磁盘共享访问。 (2)、硬件故障,可以使用备份解决。 (3)、分布式系统,需要可靠性。 关系数据库与MapReduce比较: (1)、磁…

php switch if,php switch 与 if else 区别

在php中switch是选择,if else也有同理,但是它们肯定是有区别的,那么我们来看看它们两者的区别在哪里呢,下面先看switch case语句吧。switch($id){case 1:return asp/;break;case 2:return phper/;break;case 3:return jsp/;break;…

python读取mat数据是字典形式如何转化为矩阵_mat2json, python读取mat成字典, 保存json...

python程序, 实现matlab的.mat格式转化为dict / json .第一个参数mat_path代表需要转化的mat路径;第二个参数, 如果需要把字典序列化成json, 添加这一参数, 代表json存放位置;返回值: 转化好的字典import osimport jsonimport scipy.io as spioimport pandas as pddef loadmat(…

GitHub上创建组织

4.3. 组织和团队 GitHub 在早期没有专门为组织提供账号,很多企业用户或大型开源组织只好使用普通用户账号作为组织的共享账号来使用。后来,GitHub推出了组织这一新的账号管理模式,满足大型开发团队的需要。 组织账号是不能用来登录的&#xf…

jquery根据value值php,表单php传值后jquery清除表单某项value问题

表单php文件我现在写了一个jquery打算每次提交后清除姓名中的内容代码如下$(function() { $(:input,#recordform) .not(:button, :submit, :reset, :hidden) .val() })请问怎么使用啊 加在哪个都无法实现提交后清除姓名求助!回复讨论(解决方案)不知道你的 js 函数 c…

python未将对象引用设置到对象的实例_在Python中使用pingarapi。服务器引发Webfault:对象引用未设置为对象的实例...

大家晚上好。我想说的是,我对wsdl、soap、suds这整件事都很陌生!尽可能多地提供信息。wsdl是这个http://api3.pingar.com/PingarAPIService.asmx?WSDL我花了好几个小时试图找出我正在使用的代码有什么问题,但最终还是一无所获。我借用了这里…

php 网站上传大小限制吗,配置PHP程序网站上传文件大小的限制!

PHP程序做的网站,上传文件大小的限制,是在PHP的配置文件中设置的。WORDPRESS网站也是PHP程序,我们会在WordPress里面的很多地方遇到文件上传大小的限制,比如在媒体库里面,上传图片;恢复数据时,上…

python元组元素抓7_Python3基础 tuple 通过拆分元组向元组中加入新的元素

Python : 3.7.0OS : Ubuntu 18.04.1 LTSIDE : PyCharm 2018.2.4Conda : 4.5.11typesetting : Markdowncode"""Author : 行初心Date : 18-9-23Blog : www.cnblogs.com/xingchuxinGitee : gitee.com/zhichengjiu"""def main():new_members (阳明贪…

Hypothesis, 一个很少人会用的Python测试库

在软件开发中,测试是保证代码质量和功能正确性的重要环节。为了提高测试的覆盖率和效率,开发者们创造了许多测试框架和工具。其中 Hypothesis 是一个强大且受欢迎的 Python 测试库,它利用属性基测试的思想,可以自动生成测试数据并…

用户留存 数据统计 php,位运算实现用户留存率

统计留存率之前先弄清一下留存率的概念,百度百科中是这么说的: 用户在某段时间内开始使用应用,经过一段时间后,仍然继续使用应用的被认作是留存;这部分用户占当时新增用户的比例即是留存率,会按照每隔1单位…