webdriver_api_iframe处理

有的时候我们在做自动化测试的时候会发现元素定位报错,学到这里,目前的元素定位报错有以下几种

第一点:考虑定位的写法对不对(少了个S多了个S,从语法上检查)

第二点:加没加时间(sleep)

第三点:元素值属性是不是唯一

第四点:有没有连接上网络(基于web)

第五点:我们点位的元素在不在iframe当中


什么是iframe?       框架的定位

iframe就是HTML中,用于网页嵌套网页的。一个网页可以嵌套到另一个网页中,可以嵌套很多层。

第一种:嵌套  框架 (大框架下面包含小框架,大框架展开以后里面有个小框架)  没有嵌套关系的和有嵌套关系的定位时没有id和name解法思路:定义一个变量,用Xpath路径定位,如果还定位不出来用xpath层级,父类不行就爷爷类

第二种:平行 框架 (框架和框架本身没有任何的关联  属于同一级。所以定位是先切换到一个iframe标签定位你想要的一个元素,然后退出来,再去定位另一个iframe标签里定位你想要定位的另一个元素,然后再退出来。记住一句话:有进入就要有退出,退出都是一次性退出iframe标签)

第三种:正常切换到iframe标签

框架的定位处理思路分为两种:(可以通过index,name,id定位子页面,只认name 和id)

1.iframe标签自带id  name (id和name的属性值如果是动态变化的数字  就不能使用)    dr.switch_to.frame("id或者name的属性值")

   进入框架: dr.switch_to.frame()  退出框架:dr.switch_to.default_content()  记住哦:框架有进入就要有退出,除嵌套框架以外

2.iframe标签本身没有id  name 属性

分两步走:

第一步:先使用前面学习到的定位方法(路径定位和层级定位)

先定位到iframe标签,将结果赋值给一个变量

第二部:dr.switch_to.frame(变量)

我们按下F12,定位到元素后,将滑条滑下看看有没有iframe标签,如有多个iframe标签我们只能一层一层的嵌套到指顶的元素上定位

你可能感兴趣的:(webdriver_api_iframe处理)