selenium 学习笔记 ---新手学习记录(9) 问题总结(java)
1.百度搜索目标--实例
boolean flag;
//点击次数
int shcs=3;
int i=0;
//窗口焦点控制
String detailWindowHandle = null;
//火狐浏览器
System.setProperty("webdriver.firefox.bin", "D:/Softwareinstallation/huohu/firefox.exe");
WebDriver driver = new FirefoxDriver();
driver.get("http://www.baidu.com");
driver.manage().window().maximize();
//获取主窗口header信息
String mainWindowHandle=driver.getWindowHandle();
Thread.sleep(2000);
driver.findElement(By.id("kw")).sendKeys("17");
driver.findElement(By.id("su")).click();
Thread.sleep(3000);
flag=bmm.isElementExsit(driver, By.linkText("17XUEe游戏学院首页"));
System.out.println("flag="+flag);
while(!flag)
{
System.out.println("ssssssss");
driver.findElement(By.linkText("下一页>")).click();
Thread.sleep(2000);
flag=bmm.isElementExsit(driver, By.linkText("17XUEe游戏学院首页"));
Thread.sleep(500); }
while(i<shcs){
//点击游戏学院
driver.findElement(By.linkText("17XUEe游戏学院首页")).click();
//获取新窗口焦点 切换窗口
Set<String> handles=driver.getWindowHandles();
System.out.println(handles);
Iterator<String> itWin=handles.iterator();
while(itWin.hasNext()){
String key=itWin.next();
if(mainWindowHandle.equals(key)){
continue;
}
detailWindowHandle=key;
}
WebDriver detailWindow = driver.switchTo().window(detailWindowHandle);
Thread.sleep(2000);
//关闭新打开的窗口
detailWindow.close();
handles.remove(detailWindowHandle);
Thread.sleep(2000);
//切换到主窗口
driver=driver.switchTo().window(mainWindowHandle);
i++;
System.out.println("点击第"+i+"次");
}
Thread.sleep(3000);
driver.close();
driver.quit();
}
其中验证元素是否存在代码如下:
/**
* 验证元素是否存在
* */
public boolean isElementExsit(WebDriver driver, By locator) {
boolean flag = false;
try {
WebElement element=driver.findElement(locator);
flag=null!=element;
} catch (NoSuchElementException e) {
System.out.println("Element:" + locator.toString()
+ " is not exsit!");
flag=false; }
return flag;
}
2.截图函数
/**
* 页面截图,并保存到指定位置
* */
public void pagePrintscreen(WebDriver driver,String paths){
File screenshotfile= ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(screenshotfile, new File(paths));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
3.截屏并保存到指定文件夹
/**
* 页面 截图
* driver
* 自定义图片存放文件夹
* */
public void takeScreenshot(WebDriver driver,String customtestfname){
String screanName=String.valueOf(new Date().getTime())+".jpg";
File dir=new File("testresult/images/"+customtestfname);
//创建存放图片的目录
if(!dir.exists())
dir.mkdirs();
String screanPath=dir.getAbsolutePath()+"/"+screanName;
System.out.println("图片路径:"+screanPath);
//把图片路径写入图片流
try {
File scrFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile,new File(screanPath));
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("screen shot error:"+screanPath);
}
}
使用方法takeScreenshot(driver,"dl");
4.::::借鉴别人的::::
selenium 怎么处理display:none
页面HTML是这样的:
<div class="cf w index-middle">
<div class="mask" style="display: none; opacity: 0.3;">
JavascriptExecutor j=(JavascriptExecutor)driver;
j.executeScript("document.getElementById('li').style.display='block';");
driver.findElement(By.xpath("Xpth路径")).click();
selenium 学习笔记 ---新手学习记录(9) 问题总结(java)的更多相关文章
- selenium 学习笔记 ---新手学习记录(1) 问题总结
说明:每次学习各种语言时,环境搭建访问国外网址最头疼了,现在只要是工具下载好放到自己网盘,可以随时用. 1.首先工具准备,selenium需要用到的 下载地址 访问密码 ff8f 2.我选择的语言时j ...
- selenium 学习笔记 ---新手学习记录(2) 问题总结
今天研究了下ie.chrome.firefox浏览器执行脚本 1.首先firefox下执行时,我是安装在d盘了,所以要更改路径 //如果火狐浏览器没有默认安装在C盘,需要制定其路径 System.se ...
- selenium 学习笔记 ---新手学习记录(10) 问题总结(java)--poi--excel 操作
1.当我使用poi想要操作xlsx时,报错,解决方法下载xmlbeans-2.6.0.jar架包,引入即可.点我下载 https://yunpan.cn/cSdVqp6e4v6Jk 访问密码 2c5 ...
- selenium 学习笔记 ---新手学习记录(8) 问题总结(java)
1.获取执行js代码后的返回值 //获取滚动距离 String jl="return $('#chapterul li').height();"; Long jlhq=(Long) ...
- selenium 学习笔记 ---新手学习记录(7) 问题总结(java)
1.想要获取固定ul下所有li的个数 如下图: //获取ul下li的个数 List<WebElement> elements = driver.findElement(By.id(&qu ...
- selenium 学习笔记 ---新手学习记录(6) 问题总结(java)
1.查看网页的cookie信息 //查看cookie 登录后的cookie Set<Cookie> setcoke= driver.manage().getCookies(); for(C ...
- selenium 学习笔记 ---新手学习记录(5) 问题总结(java)
1.今天遇到个奇葩问题,iframe有两个id相同的(如下图) 使用driver.switchTo().frame(“frmLinkPage1”);这个无法使用了. 后来改用driver.switch ...
- selenium 学习笔记 ---新手学习记录(4) 问题总结(java)-autoit3脚本使用
1.安装autoit3 下载地址:点我下载 (提取码:9633) 提取码 下载完成后,一直下一步即可 2.上传头像使用脚本 代码如下: ControlFocus("打开",&quo ...
- selenium 学习笔记 ---新手学习记录(3) 问题总结(java)
1.验证码简单处理 /** * 验证码等待输入函数 * */ private void ZcYzm(WebDriver driver){ boolean flag=false; while(flag= ...
随机推荐
- VB6关于判断模态窗体的问题
模态窗体也有人叫模式窗体,是否为模态窗体由Show方法的参数决定: 语法 object.Show style, ownerform Show 方法的语法包含下列部分: 部分 描述 object 可选的 ...
- ZOJ 3794 Greedy Driver spfa
题意: 给定n个点,m条有向边,邮箱容量. 起点在1,终点在n,開始邮箱满油. 以下m行表示起点终点和这条边的耗油量(就是长度) 再以下给出一个数字m表示有P个加油站,能够免费加满油. 以下一行P个数 ...
- android上下文
在android中常常会遇到与context有关的内容 浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder( ...
- android可拖动排序GridView实现
经常使用今日头条.网易新闻的同学们应该都会注意到用于管理多个频道的可拖动排序GridView,下面介绍一下可拖动的DragGridView的实现方法.代码放在GitHub上https://github ...
- C++中const简介及用法
1.const简介 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰 ...
- mysql 调用存储过程及例子
存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 c ...
- Scala io操作
1. 读文件 scala特有的是scala.io.Source,例如: import scala.io._ Source.fromFile(“cn.scala”,”utf8”).mkString 逐行 ...
- 有关std::map和std::vector的使用
先说map吧. 最需要注意的就是:用下标访问map中的元素时,与使用下标访问vector的行为截然不同! 用下标访问不存在的元素时,将导致在map容器中添加一个新的元素,它的键即为该下标! 然而很多时 ...
- I - Doing Homework again
I - Doing Homework again Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
- Web API (一)
页面内容 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ...