1.1软件需求变更不频繁
1.2项目周期比较长
1.3自动化的脚本能够重复利用
id,name,class_name,xpath,css,tag_name,link_text,partail_link_text
下面例子以百度为例
ID定位:
driver,find_element(By.ID).send_keys("学院")
name定位:
driver.find_element(By.NAME,"wd").send_keys("学院")
link_text定位
driver.find_element(By.Link_text,"新闻").click()
partail_link_text定位
driver.find_element(By.PARTIAL_LINK_TEXT,"新").click()
xpath定位:
1.绝对路径:/ 开头是绝对路径
/html/body/div[1]/div[1]/div[2]/a[1]
2.相对路径://开头是相对路径
//input
1.相对路径+索引定位://form/span[1]/input
2.相对路径+属性定位: //input[@autocomplete="off"] 属性要唯一
3.相对路径+通配符定位: //*[@autocomplete='off'] //*[@*='off']属性要唯一
4.相对路径+部分属性值定位
以开头: //*[starts-with(@autocomplete,'of')]
以结尾: //*[substring(@autocomplete,'ff')]
包含://span[text()='按图片搜素']
5.相对路径+文本定位
CSS定位:
1.绝对路径
2.通过ID和class定位
3.通过属性定位
4.通过部分属性定位
5.查询子元素定位
6.查询兄弟节点定位
如果元素定位不到,我们要怎么去分析?
1.元素没有加载完成
2.Frame中
3.元素不可以用,不可读,不可见
4.动态属性,动态div层
前提:需要定位的元素或它的属性必须要唯一