您的位置:首页 > 编程语言 > Java开发

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

2016-03-03 16:10 435 查看
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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: