WebDriver处理extjs树形菜单的例子
上一篇 /
下一篇 2012-12-28 23:20:08
/ 个人分类:WebDriver
网页中经常会碰到 extjs的树形菜单,对于这种菜单,基本的处理思路就按照菜单树一层一层的定位元素,判断元素的class,如果存在 x-tree-node-leaf,说明是叶节点,直接点击,否则,如果存在 x-tree-node-collapsed ,说明已经展开,无需点击,否则需要做双击操作。下面是例子代码:
- import java.util.ArrayList;
- import java.util.concurrent.TimeUnit;
-
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.ie.InternetExplorerDriver;
- import org.openqa.selenium.interactions.Actions;
- import org.testng.Reporter;
- import org.testng.annotations.Test;
-
- public class TempTest {
-
- @Test()
- public void test1() {
- WebDriver dr = new InternetExplorerDriver();
- dr.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
- dr.get("http://extjs.org.cn/extjs/examples/tree/reorder.html");
-
- for (int i = 0; i < 2; i++) {
- ArrayList<String> menus = new ArrayList<String>();
- menus.add("Ext JS");
- menus.add("locale");
- menus.add("ext-lang-zh_CN.js");
- ClickExtjsTree(dr, menus);
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- dr.quit();
- }
-
- public void ClickExtjsTree(WebDriver dr, ArrayList<String> menus) {
- // 确定顶层元素
- WebElement we_treeview = dr.findElement(By
- .xpath("//div[@id='tree-div']/div/div"));
-
- // 遍历菜单
- for (String menu : menus) {
- Reporter.log("查找:'" + menu + "'", true);
- WebElement we_div = we_treeview.findElement(By
- .xpath(".//span[text()='" + menu + "']/../.."));
- // 判断是不是叶节点
- if (we_div.getAttribute("class").contains("x-tree-node-leaf")) {
- Reporter.log("'" + menu + "'是叶节点,单击", true);
- we_treeview.findElement(
- By.xpath(".//span[text()='" + menu + "']")).click();
- return;
- } else {
- if (we_div
- .getAttribute("class")
- .contains(
- "x-tree-node-collapsed")) {
- Reporter.log("'" + menu + "'未展开,双击", true);
- Actions action = new Actions(dr);
- action.doubleClick(we_treeview.findElement(By
- .xpath(".//span[text()='" + menu + "']")));
- action.perform();
- }
- else{
- Reporter.log("'" + menu + "'已展开,不处理", true);
- }
- }
- }
- }
-
- }
收藏
举报
TAG: