目录
1对浏览器操作
1.1用webdriver打开一个浏览器
1.2最大化浏览器,关闭浏览器
1.3设置浏览器窗口大小
1.4打开测试页面
1.5处理浏览器弹出的新窗口
2页面元素定位
3如何对页面元素进行操作
3.1 WebElement相关方法
3.2 iFrame的处理
3.3输入框(文本框或文本区域)
3.4下拉选择框(选择)
3.5单选项(单选按钮)
3.6多选项(复选框)
3.7按钮(按钮)
3.8处理警报
3.9上传文件
3.9.1元素标签是输入时上传方式
3.9.2通过操作桌面浏览窗口上传
3.10硒处理HTML5
3.10.1处理视频
3.10.2处理帆布
3.11表单(形式)
4其他
4.1等待元素加载
4.2执行JS脚本
4.3模拟键盘操作
1对浏览器操作
返回
1.1用webdriver打开一个浏览器
<代码>//打开火狐浏览器: WebDriver司机=new FirefoxDriver ();//打开IE浏览器 WebDriver司机=new InternetExplorerDriver ();//打开HtmlUnit浏览器 WebDriver司机=new HtmlUnitDriver ();//打开铬浏览器 WebDriver司机=new ChromeDriver(); 代码>
1.2最大化浏览器,关闭浏览器
WebDriver司机=new FirefoxDriver ();
driver.manage () .window () .maximize ();
driver.close();——关闭当前窗口,退出浏览器如果是最后一个当前打开的窗口。
driver.quit();——退出这个驱动程序,关闭所有窗口相关联。
1.3设置浏览器窗口大小
视图代码
1.4打开测试页面
打开测试页面
driver.get (“http://www.baidu.com/");
driver.navigate (), (“http://www.baidu.com/");
//导航方法会产生1个导航器对象,其封装了与导航相关的一些方法,比如前进后退等
1.5处理浏览器弹出的新窗口
私有静态孔隙MutiWindowTest (WebDriver司机)
抛出InterruptedException {
WebDriver newWindow=零;
driver.get (“http://www.hao123.com/");
//浏览器最大化
<代码> driver.manage () .window () .maximize(); 代码>
//获取当前页面句柄的<代码> & lt; br/祝辞> 代码字符串current_handles=driver.getWindowHandle(); <代码> & lt; br/在//点击百度链接& lt; br/祝辞代码> driver.findElement (By.xpath (“//* [@data-title=鞍俣取?“)).click(); <代码> & lt; br/在//接下来会有新的窗口打开,获取所有窗口句柄& lt; br/祝辞代码> Set
<代码>//循环判断,把当前句柄从所有句柄中移除,剩下的就是你想要的新窗口 Iterator它=all_handles.iterator (); 而(it.hasNext ()) { 如果(current_handles==it.next())继续;代码>
<代码> ' ' '//跳入新窗口,并获得新窗口的司机——newWindow newWindow=driver.switchTo () .window (it.next ()); }//接下来在新页面进行操作,也就是百度首页,我们输入一个java关键字进行搜索 thread . sleep (5000); WebElement baidu_keyowrd=newWindow.findElement (By.id(千瓦)); baidu_keyowrd.sendKeys (“java”); thread . sleep (1000);//关闭当前窗口,主要使用近而不是, newWindow.close (); driver.switchTo () .window (current_handles); System.out.println (driver.getCurrentUrl ()); }代码>
<代码> 2页面元素定位 返回 Webdriver提供下面两种方法来定位页面元素,参数是通过对像,最常用是By.id和By.name查找。 findElement定位某个元素,如果没有找到元素会抛出异常:NoSuchElementException findElements定位一组元素 例如需要定位如下元素: & lt;输入类=" input_class " type="文本" name="密码" id=" passwd-id "/比; 代码>
//d=driver.findElement
WebElement元素(By.id (“passwd-id"));
//By.name
=driver.findElement WebElement元素(By.name (“passwd"));
//By.xpath
=driver.findElement WebElement元素(By.xpath(“//输入[@ id=' passwd-id ']“));
//lassName元素
WebElement=driver.findElement (By.className (“input_class"));
//ssSelector
WebElement元素=driver.findElement (By.cssSelector (“.input_class"));
//inkText
//通俗点就是精确查询
WebDriver司机=new FirefoxDriver ();
driver.get (“http://www.baidu.com/");
WebElement元素=driver.findElement (By.linkText(“百科“));
//artialLinkText:
//这个方法就是模糊查询
WebDriver司机=new FirefoxDriver ();
driver.get (“http://www.baidu.com/");
WebElement元素=driver.findElement (By.partialLinkText (“hao"));