您的位置:软件测试 > 开源软件测试 > 开源功能测试工具 > Selenium
Java Selenium (五) 元素定位大全
作者:小坦克 发布时间:[ 2017/7/12 15:05:57 ] 推荐标签:Selenium 功能测试工具

  通过Name查找元素:By.name()
  以豆瓣网的主页搜索框为例, 其搜索框的HTML代码如下, 它name是: q
  <input type="text" autocomplete="off" name="q" placeholder="书籍、电影、音乐、小组、小站、成员" size="12" maxlength="60">
  WebDriver中通过name查找豆瓣主页上的搜索框的Java代码如下:
  WebDriver driver  = new FirefoxDriver();
  driver.get("http://www.douban.com");
   
  WebElement searchBox = driver.findElement(By.name("q"));
  searchBox.sendKeys("小坦克");
  searchBox.submit();
  通过TagName查找元素: By.tagName()
  通过tagName来搜索元素的时候,会返回多个元素. 因此需要使用findElements()
  WebDriver driver  = new FirefoxDriver();
  driver.get("http://www.cnblogs.com");
   
  List<WebElement> buttons = driver.findElements(By.tagName("div"));
  System.out.println("Button:" + buttons.size());
  注意: 如果使用tagName, 要注意很多HTML元素的tagName是相同的,
  比如单选框,复选框, 文本框,密码框.这些元素标签都是input. 此时单靠tagName无法精确获取我们想要的元素, 还需要结合type属性,才能过滤出我们要的元素
  WebDriver driver  = new FirefoxDriver();
          driver.get("http://www.cnblogs.com");
           
          List<WebElement> buttons = driver.findElements(By.tagName("input"));
          for (WebElement webElement : buttons) {
              if (webElement.getAttribute("type").equals("text")) {
                  System.out.println("input text is :" + webElement.getText());
              }
          }
  通过ClassName 查找元素 By.className
  以淘宝网的主页搜索为例, 其搜索框的HTML代码如下: class=”search-combobox-input”
  <input autocomplete="off" autofocus="true" accesskey="s" aria-label="请输入搜索文字" name="q" id="q" class="search-combobox-input" aria-haspopup="true" aria-combobox="list" role="combobox" x-webkit-grammar="builtin:translate" tabindex="0">
  Java 示例代码如下
  WebDriver driver  = new FirefoxDriver();
          driver.get("http://www.taobao.com");
          Thread.sleep(15000);
          WebElement searchBox = driver.findElement(By.className("search-combobox-input"));
  
          searchBox.sendKeys("羽绒服");
          searchBox.submit();
  注意:使用className 来进行元素定位时, 有时会碰到一个
  通过LinkText查找元素 By.linkText();
  直接通过超链接上的文字信息来定位元素:例如
  <a href="https://passport.baidu.com/v2/?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2F" name="tj_login" class="lb" onclick="return false;">登录</a>
  HTML 代码如下
  WebDriver driver  = new FirefoxDriver();
  driver.get("http://www.baidu.com");
  WebElement loginLink = driver.findElement(By.linkText("登录"));
  loginLink.click();
  通过PartialLinkText 查找元素 By.partialLinkText()
  此方法是上一个方法的加强版, 单你只想用一些关键字匹配的时候,可以使用这个方法,通过部分超链接文字来定位元素
  HTML 代码如下
  WebDriver driver  = new FirefoxDriver();
  driver.get("http://www.baidu.com");
  WebElement loginLink = driver.findElement(By.partialLinkText("登"));
  loginLink.click();
  注意:用这种方法定位时,可能会引起的问题是,当你的页面中不知一个超链接包含“等”时,findElement方法只会返回第一个查找到的元素,而不会返回所有符合条件的元素
  如果你想要获得所有符合条件的元素,还是只能用findElements方法。

相关链接:
上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd