最近在工作中用到selenium,其重要的一功能就是元素定位。如果元素定位不准确,那ui自动化地基就没打好。看了很多技术文章,selenium元素定位有哪些方法呢?其中常用的有id、name、xpath、css四种定位方式。那么最有效的我想就是今天给大家介绍的xpath元素定位。
xapth元素定位也是我工作之中用得最多的一种方式,其有哪些优势和劣势呢?
优势:个人经验,其灵活、定位高效、容易上手。
劣势:与css执行速度比稍低(😁,源于相关技术文章介绍),如果定位不准确那后续元素操作就特别苦恼,这个坑踩得太多。
xpath元素定位当如何定位,基本语法是什么?
"/" 斜杠,路径层级,如:/div/li/a;
"//"双斜杠,//a(上一例子的相对路径);
"[]"方括号,存放标签属性描述,如://div[@id=”123456“];
"*"星号,标签通配符,如://*[@id="123456"],这里的"*"就表示div;
"@"at符号,标识标签属性,如://label[@name="logic"];
常用关键字:starts_with,ends_with,contains,and ,or ,text
starts_with 标签某属性值以什么开头,
ends_with 标签某属性值以什么结尾,
contains 标签某属性值包含某字符;
and/or 标签包含多个属性用and 或 or 连接;
text 标签文本值标识;
xpath定位遇到的有些问题?
1.定位不准,导致元素click操作无效;解决方法:模拟鼠标操作或js操作,以java举例:
方法一:模拟鼠标操作
actions Actions = actions(driver);
Actions.click(element).perform;
Action.clickAndHold(element).click().perform;
方法二:js操作
driver.executeScript("arguments[0].click()",element);