1. 通过同一父节点下其他元素的唯一性定位法
对于诊断结论列表,要对某一条诊断结论进行修改,每条诊断结论的修改按钮的元素的属性相同,而ID又是随机生成的。这时要定位到名为“未发现异常”的修改按钮,诊断名称和修改属于同一层级。需要先定位到名称“未发现异常”,然后再定位“未发现异常”的父节点下 title=’修改’的元素。
driver.find_elenment_by_xpath(“//td/div[text()=’未发现异常’]/ancestor::*/td[6]/div/img[@tile=’修改’]”).click()
driver.find_elenment_by_xpath(“//td/div[text()=’未发现异常’]/ancestor::tr/td[6]/div/img[@tile=’修改’]”).click()
ancestor表示所有的父节点、祖父节点。上面第一种表示所有的父节点下能匹配到的。第二种表示父节点为tr的下面。
其他常见的还有:preceding-sibling 选取当前节点之前的所有同级节点,following-sibling 选取当前节点之后的所有同级节点
更多参见:http://www.cnblogs.com/zhaozhan/archive/2009/09/10/1563735.html
2. 页面上相同元素只会出现一个的情况,可以用Class属性定位
诊断结论的输入框有名称、编码、描述,这些输入框的合法性校验一直,输入非法的字符时,弹出额提示框一样,如果用路径定位,需要对每一个输入框写一个路径。他们有一点相同的就是,Class一样。而且同时只有一个出现。这时就可以用Class属性定位。(作为校验合法性用)