一、几种定位方式
前提,重点:确认元素的唯一性(方法在学习记录二中)
1、Id定位:driver.findElement(By.id(id));
2、Name定位:driver.findElement(By.name(name));
3、Css定位:driver.findElement(By.cssSelector(selector));
- 从上几层比较容易定位的元素开始(如class、id),逐层向下定位,直到定位到目标元素;
- .表示class,#表示id,下一层用>;
4、Xpath定位:driver.findElement(By.xpath(xpathExpression));
- //*为起始固定格式,最外面一层;
- 从最外层开始逐层往下定位,直到定位到目标元素;
- 每一层用/隔开;
- div[n],n为当前层的第n个div;
- [@id=‘XXX’],a,img等均可作为每层定位的元素;
5、LinkText定位:driver.findElement(By.linkText(linkText));
- linkText内填链接的文本,如新闻等;
6、Tag定位:driver.findElement(By.tagName(name));
- 一般用在元素的二次定位,不太靠谱,因为标签名很多都是相同的
7、Classname定位:driver.findElement(By.className(className));
- 如果有多个class要都写完整
- 复合型class,拿其中连续的一部分(不包含空格的部分),但要考虑唯一性
8、部分链接定位:driver.findElement(By.partialLinkText(linkText))
- 只需使用链接文本的部分文字即可;
9、List定位
- 先定位相同名称节点,查看节点有几个;
- 再定位到对应需要的第几个节点;
List<WebElement>ButtonElement = driver