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. Ubuntu下用glade和GTK+开发C语言界面程序(三)——学习make的使用方法

    makefile的规则 makefile的规则例如以下: target ... : prerequisites ... command ... ... target能够是一个object file(目 ...

  2. 从Excel转Access的一个方法说开去(DataRow的state状态)

    因为客户对access不太熟悉,更喜欢玩EXCEL.但是系统要求导入ACCESS.所以我们得做个把EXCEL转换成Access的小工具.(别问我为啥不让系统直接导入excel....我不知道!),然后 ...

  3. oracle添加用户及权限

    CREATE USER qdcenter 用户名 IDENTIFIED BY qdcenter   密码 DEFAULT TABLESPACE data1  默认表空间 TEMPORARY TABLE ...

  4. 2014.8.30.ref,out,params,enum,递归

    (一)ref 函数形参变量的输入有两种方式:传值,传址.而ref则为传址.eg: static int Add(ref int n) { Console.WriteLine("Add---- ...

  5. ubuntu14.04+xfce下启用fcitx,使用中文输入法

    1. 安装fcitx  sudo apt-get install fcitx-pinyin 2.启用fcitx 打开 setting -> Language Support -> Lang ...

  6. IIS发布网站:CS0016: 未能写入输出文件的解决方法

    “/”应用程序中的服务器错误.-------------------------------------------------------------------------------- 编译错误 ...

  7. javaTemplates-学习笔记一

    第一步,下载Java运行环境-JDK JDK -'1.8.0_25'[附链接地址] 安装JDK配置环境 安装好jdk,然后配置环境变量.不同系统配置环境变量百度Google之,附上WIN8配置方法[J ...

  8. [LeetCode]题解(python):139-Word Break

    题目来源: https://leetcode.com/problems/word-break/ 题意分析: 给定一个字符串s和一个字典dict,判断s是不是由字典dict里面的元素组成的. 题目思路: ...

  9. shell实现死循环

    参考自http://codingstandards.iteye.com/blog/780524 .while true do command; done .while : do command; do ...

  10. 为SQL Server 增加链接到SQL Server 的链接服务器

    整体的分析一下好有一个思路.我们的目的是完成一个到远程服务器的链接. 第一:我们要知道这台服务器在哪(也就是要知道它的IP地址,如果是在同一个网络中知道它的计算机名也是可以的.因为一台服务器上可以安装 ...