selenium 学习(4)--Xpath实例 & 常用API
selenium.click("//*[span='Sign in']"); //sign in 是一个类似链接的按钮
selenium.click("link=USER & VEHICLE SETTINGS"); //是链接
selenium.type("//input[contains(@id, 'usernameTxt')]", "Bill"); //id中包含usernameTxt
selenium.getText("//div[@id='HistoryBox']/table/tbody/tr/td/table/tbody/tr[4]/td/span"); //从表结构的框架中获得text
以下是测试结果是否出现了,因为结果是动态的,不好用assertTrue之类的来测试,就想出这样的一个办法。自己写代码比较,如果没有出现,就点击一个不存在的东东,从而是测试用例报错 |
String NotificationDate_new; NotificationDate_new = selenium.getText("//div[@id='HistoryBox']/table/tbody/tr/td/table/tbody/tr[4]/td/span"); System.out.println(NotificationDate_new); String new_Times; new_Times = selenium.getText("//div[@id='PageNaviArea']/p/span"); String b[]=new_Times.split(" / "); new_Times=b[1]; int n_times=Integer.parseInt(new_Times); System.out.println(n_times); //=======check the AC history page,verify if add a history record===== if (n_times==(o_times+1) && !NotificationDate_new.equals(NotificationDate_old)) //check the n_times { System.out.println("OK"); } else{ selenium.click("//*[span='Bill']"); // if the values is not equal, turn } //========================================= |
利用java自身的时间,通过拼接获得时间 |
//********************************************* int y,d,m; Calendar cal=Calendar.getInstance(); y=cal.get(Calendar.YEAR); m=cal.get(Calendar.MONTH); d=cal.get(Calendar.DATE); String str1="0"+d+" January "+y+" 10:10" ; System.out.println(str1); //******************check timer*************************** Thread.sleep(10000); assertTrue(selenium.isTextPresent(str1)); |
以下是一个登录用户名/密码的验证 通过自己java自身的循环,不断登录/退出,用户名和密码在其他文件中存放着,并通过Eloginname1,Eloginname2这样的形式命名,方便在java中循环访问。 因为是多个测试用例在一起,只要有一组用户名/密码为通过测试,则说明测试用例未通过。首先用flag=1标记,如果为通过就设置为flag=0,循环运行后,如果flag=0,则让程序点击一个不存在的东东,造成用例的失败,则可以在整个用例的层面看出是否失败或成功。 其实程序不本身可能意义不大,因为我们要讲究用例的独立性,不能太复杂。这里只是记录一个思想而已。 |
selenium.open(getConfigParam("loginPathName")); // 打开登录页面 } |
常用API
- 文本框
输入信息 | selenium.type("salutationText", “abc”); |
获取其中值 | selenium.getValue("//input[@name='UserName']"); |
是否可编辑 | selenium.isEditable("//input[@name='UserName']"); |
- 下拉框
选值 | selenium.select("typeSelect", "label=Date"); selenium.select("typeSelect", "index=1"); //下标从0开始 selenium.select("typeSelect", "value=Date"); |
取出已选的值 | selenium.getSelectedLabel("//SELECT[@name='addSatution']") |
取出所有选项 | selenium.getSelectOptions("//div[@id='mysearch_tips']/select") |
- 按钮 & 链接
点击 | selenium.click("link=Administration"); |
- 单/多选框 (Radio/Check Box)
选择 | selenium.check("otherPhoneFlag") |
不选 | selenium.uncheck("otherPhoneFlag"); |
是否选中 | selenium.isChecked("otherPhoneFlag"); |
- 表格
取出某单元格的值 (下标从0开始) | selenium.getTable("//div[@id='profiles-search']/div[2]/table.1.1"); |
- 其他
取元素属性 | selenium.getAttribute("xpath=//img[@name='picName']@style") |
取某元素的Text值 | selenium.getText("link=Contacts") |
取当前页面的Title | selenium.getText("link=Contacts") |
是否存在元素 | selenium.isElementPresent(java.lang.String locator) |
是否存在text | selenium.isTextPresent("abc?") |
是否可见 | selenium.isVisible("xpath=//img[@name='picName']") |
模拟keyup | selenium.keyUp("creditCardExpMonth", "1"); |
打开URL | selenium.open("/login.aspx"); |
刷新页面 | selenium.refresh(); |
每步操作间隔 | selenium.setSpeed("3000"); |
页面最大化 | selenium.windowMaximize(); |
等待页面载入 | selenium.waitForPageToLoad("30000"); |
浏览器后退 | selenium.goback(); |
API 学习地址 | http://release.seleniumhq.org/selenium-core/1.0/reference.html |
TAG: