Selenium2: web元素定位方法笔记

来源:互联网 发布:网络培训挂机软件 编辑:程序博客网 时间:2024/06/15 03:28
By.name("username")By.id("username")By.className("buttonStyle")By.linkText("About Google")By.partialLinkText("About")===================================By.cssSelector("标签名[属性名='属性值']")^=        driver.findElement(By.cssSelector("标签名[属性名^='xxx']"));  匹配属性值以xxx开头的元素$=        driver.findElement(By.cssSelector("标签名[属性名$='xxx']"));  匹配属性值以xxx结尾的元素*=         driver.findElement(By.cssSelector("标签名[属性名^='xxx']"));  匹配属性值包含xxx的元素driver.findElement(By.cssSelector("span[textContent='新闻']"));=====================================By.xpath()  : 重要!在Firefox和Chrome下速度很快,在IE下速度很慢。starts-with()    driver.findElement(By.xpath("//input[stars-with(@id,'user')]"))ends-with        driver.findElement(By.xpath("//input[ends-with(@id,'name')]"))contains()        driver.findElement(By.xpath("//input[contains(@id,"ernam")]"))driver.findElement(By.xpath("//span[contains(text(),'hello')]"))   包含匹配driver.findElement(By.xpath("//span[text()='新闻']"))     绝对匹配======================================http://www.cnblogs.com/qingchunjun/p/4208159.htmlhttp://www.51testing.com/html/20/n-855520-2.html====================================================1. 当页面元素有id属性时,最好尽量用id来定位。但由于现实项目中很多程序员其实写的代码并不规范,会缺少很多标准属性,这时就只有选择其他定位方法。2. xpath很强悍,但定位性能不是很好,所以还是尽量少用。如果确实少数元素不好定位,可以选择xpath或cssSelector。3. 当要定位一组元素相同元素时,可以考虑用tagName或name。4. 当有链接需要定位时,可以考虑linkText或partialLinkText方式。===========================================================页面有多个复选框时,要一次性get_visable_elements获取到所有,保存到临时变量里。不要多次get_visable_elements,浪费时间。List<WebElement> wes_temp=get_visable_elements(driver,"//div[contains(@id,'appAdministratorAdd')]//span[contains(@id,'checkboxfield')]")wes_temp.get(1).click()wes_temp.get(3).click()//    get_visable_elements(driver,"//div[contains(@id,'appAdministratorAdd')]//span[contains(@id,'checkboxfield')]").get(1).click()//    get_visable_elements(driver,"//div[contains(@id,'appAdministratorAdd')]//span[contains(@id,'checkboxfield')]").get(3).click()============================================================20160608 页面有input,输入数据后,无法通过gettext得到输入的值,此时可以:            String str_temp_password = driver.findElement(By.name("password")).getAttribute("value")
0 0
原创粉丝点击