总结:WEB UI自动化测试一般采用 POP(面向页面编程),自动化测试框架分三层,有时如果页面如果太多,不好管理,可以面向控件编程,即把控件当作页面,毕竟控件是有限的,所以封装页面的代码量会少很多,两种方式各有优劣.如果页面比较少的,建议可以全部封装为页面对象:如果页面比较多,而且跳转复杂,建议使用两者结合的方式,一级页面,二级页面封装,三级以上页面,就不需要封装,使用控件对象完成页面操作.利用封装好的页面对象/控件对象,再进一步完成业务关键字封装,比如登录,注册,添加商品,支付等等操作,这样…
1.简介 上一篇讲解和分享了如何获取浏览器窗口的句柄,那么今天这一篇就是讲解获取后我们要做什么,就是利用获取的句柄进行浏览器窗口的切换来分别定位不同页面中的元素进行操作. 2.为什么要切换窗口? Selenium在当前页面打开了新的窗口,此时就需要跳转到新的窗口去,就需要把窗口进行切换.宏哥这里简单举例一个测试场景,你在页面A点击一个连接,会在新的tab窗口打开页面B,这个时候,你在页面B点击一个连接,会在新的tab窗口打开页面C.这种情况,在测试中经常遇到,自动化中,webdriver是如何处…
就来认识 WebDriver 中最常用的几个方法: get():跳转到的地址clear(): 清除文本. send_keys (value): 模拟按键输入. click(): 单击元素. 示例: from selenium import webdriverdriver = webdriver.Chrome()driver.get("https://www.baidu.com")driver.find_element_by_id("kw").clear()drive…
操作浏览器的主要方法都来自 org.openqa.selenium.WebDriver 这个接口 这些方法都是在 org.openqa.selenium.remote.RemoteWebDriver这个类中实现的,然后不同浏览的 driver类继承RemoteWebDriver  1. 打开一个浏览器  //IE浏览器 System.setProperty("webdriver.ie.driver", ".\\Tools\\IEDriverServer.exe");…
我们继续回到自动化测试框架的主线上来,在前面的文章中,我们定义一个页面元素的主要参数有:路径,找寻方式,等待时间,名称,这个四个参数.另外,我们还需要考虑一个问题,就是网站的页面. 举个例子来说,如果A页面上有“新增”,“选择”,“保存”等按钮,B页面上也有“新增”,“选择”,“保存”等按钮,我们应该如何处理这种情况呢? 当然,有的小伙伴可能会说,我就直接命名为“新增A”,“选择A”,“保存A”,“新增B”,“选择B”,“保存B”就是了.这样当然是可以的. 但是,在维护自动化脚本的时候,你就会发…
org.openqa.selenium.interactions.Actions类,主要定义了一些模拟用户的鼠标mouse,键盘keyboard操作.对于这些操作,使用 perform()方法进行执行.可以完成单一的操作,也可以完成几个操作的组合. 1. 模拟鼠标操作 // 新建一个action Actions action = new Actions(driver); // 鼠标左键单击 action.click().perform(); // 鼠标左键双击 action.doubleClic…
1. 操作cookie // 增加一个 name = "name",value="value" 的 cookie Cookie cookie = new Cookie("name", "value"); driver.manage().addCookie(cookie); // 得到当前页面下所有的 cookies ,并且输出它们的所在域.name.value.有效日期和路径 Set<Cookie> cookies…
1. iframe 的处理 查找元素必须在对应的 ifarme 中查找,否则是找不到的 // 传入参数为 frame 的序号,从0开始 driver.switchTo().frame(Int index); // 传入参数为 frame 的 ID 或者 Name 属性 driver.switchTo().frame(String nameOrId); // 传入参数为 frameElement driver.switchTo().frame(WebElement frameElement); /…
NoSuchElementException 1.检查元素的定位器是否正确 2.如果定位器正确,增加休眠时间 3.等待了足够的时间依然找不到的话,更换定位器的定位方式 NoSuchWindowException 1.检查窗口切换的定位器是否正确 2.切换之前增加休眠时间 NoAlertPresentException 1.确保 alert 会出现 2.切换到 alert 之前增加休眠时间 NoSuchFrameException 1.检查 frame 切换的定位器是否正确 2.检查 frame…
1. 输入框(text field or textarea) WebElement we = driver.findElement(By.id("id")); //将输入框清空 we.clear(); // 在输入框中输入内容 we.sendKeys(“test”); // 获取输入框的文本内容, 取得就是 value 属性的值 element.getAttribute("value"); 2. 下拉选择框(select) // 找到下拉选择框的元素 Select…