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 id="li" class="flea r li">
<a class="pic" href="http://XXX.com/"></a>
 

<div class="mask" style="display: none; opacity: 0.3;">

<a href="http://XXX.com/"></a>
</div>
<a class="text-a" href="http://XXX.com/" style="display: none; opacity: 1;">查看</a>
</div>
 .....
 
处理方法是用js把隐藏的显示出来,方法如下:

JavascriptExecutor j=(JavascriptExecutor)driver;

j.executeScript("document.getElementById('li').style.display='block';");

driver.findElement(By.xpath("Xpth路径")).click();

selenium 学习笔记 ---新手学习记录(9) 问题总结(java)的更多相关文章

  1. selenium 学习笔记 ---新手学习记录(1) 问题总结

    说明:每次学习各种语言时,环境搭建访问国外网址最头疼了,现在只要是工具下载好放到自己网盘,可以随时用. 1.首先工具准备,selenium需要用到的 下载地址 访问密码 ff8f 2.我选择的语言时j ...

  2. selenium 学习笔记 ---新手学习记录(2) 问题总结

    今天研究了下ie.chrome.firefox浏览器执行脚本 1.首先firefox下执行时,我是安装在d盘了,所以要更改路径 //如果火狐浏览器没有默认安装在C盘,需要制定其路径 System.se ...

  3. selenium 学习笔记 ---新手学习记录(10) 问题总结(java)--poi--excel 操作

    1.当我使用poi想要操作xlsx时,报错,解决方法下载xmlbeans-2.6.0.jar架包,引入即可.点我下载 https://yunpan.cn/cSdVqp6e4v6Jk  访问密码 2c5 ...

  4. selenium 学习笔记 ---新手学习记录(8) 问题总结(java)

    1.获取执行js代码后的返回值 //获取滚动距离 String jl="return $('#chapterul li').height();"; Long jlhq=(Long) ...

  5. selenium 学习笔记 ---新手学习记录(7) 问题总结(java)

    1.想要获取固定ul下所有li的个数  如下图: //获取ul下li的个数 List<WebElement> elements = driver.findElement(By.id(&qu ...

  6. selenium 学习笔记 ---新手学习记录(6) 问题总结(java)

    1.查看网页的cookie信息 //查看cookie 登录后的cookie Set<Cookie> setcoke= driver.manage().getCookies(); for(C ...

  7. selenium 学习笔记 ---新手学习记录(5) 问题总结(java)

    1.今天遇到个奇葩问题,iframe有两个id相同的(如下图) 使用driver.switchTo().frame(“frmLinkPage1”);这个无法使用了. 后来改用driver.switch ...

  8. selenium 学习笔记 ---新手学习记录(4) 问题总结(java)-autoit3脚本使用

    1.安装autoit3 下载地址:点我下载 (提取码:9633) 提取码 下载完成后,一直下一步即可 2.上传头像使用脚本 代码如下: ControlFocus("打开",&quo ...

  9. selenium 学习笔记 ---新手学习记录(3) 问题总结(java)

    1.验证码简单处理 /** * 验证码等待输入函数 * */ private void ZcYzm(WebDriver driver){ boolean flag=false; while(flag= ...

随机推荐

  1. xcode xib 加载 、注意点

    加载xib2中方式 NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"xib名称" owner:nil options: ...

  2. (function(){}())写法的用途

    全局命名空间污染与 IIFE 总是将代码包裹成一个 IIFE(Immediately-Invoked Function Expression),用以创建独立隔绝的定义域.这一举措可防止全局命名空间被污 ...

  3. Asp.net 获取图片列表并打包下载

    先引用:ICSharpCode.SharpZipLib.dll 后台代码: using System.IO; using ICSharpCode.SharpZipLib.Zip; using ICSh ...

  4. ASP.NET LINQ SQL执行超时的问题

    最近在写一个航材取价的程序.由于执行的语句复杂,数据量比较大,容易造成超时. 看提示应该是执行SQL的时候超时,我在程序中用的linq. 实际把SQL语句单独执行的时候观察也要40秒左右. 查资料得知 ...

  5. jquery新增,删除 ,修改,清空select中的option

    jQuery获取Select选择的Text和Value: 1. var checkText=jQuery("#select_id").find("option:selec ...

  6. 在 Visio 中录制宏

    在“开发工具”选项卡上,单击“录制宏”.(如果您看不到“开发工具”选项卡,请参阅下面的“显示‘开发工具’选项卡”.) 在“宏名”框中,键入宏名称. 在“快捷键”框中,键入与 Ctrl 键一起使用可运行 ...

  7. MySql级联操作

    转自:http://blog.csdn.net/codeforme/article/details/5539454 外键约束对子表的含义:       如果在父表中找不到候选键,则不允许在子表上进行i ...

  8. mysql批量上传数据

    private object BlubckMysql(List<xiaoyao_blogs_pictureModel> list, string connect) { var sqllis ...

  9. php学习笔记(1)

    1.引用文件的方法有两种:require 及 include require 的使用方法如 require("MyRequireFile.php"); .这个函数通常放在 PHP ...

  10. HDU 5773 The All-purpose Zero(树状数组)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5773 [题目大意] 给出一个非负整数序列,其中的0可以替换成任意整数,问替换后的最长严格上升序列长 ...