
先对XPath做个简短介绍,之后用实例具体说明: 1EXTJS的页面源码是多个div组成的,对于div id为常量时,可用div先定位,再由其他标签定位,例如input field可用label name,button可用button上的文字来定位。 2在定位更接近目标的节点时可用“/
首先要确定d窗的类型。
d出窗口基本上有如下三种实现方式:
(1)divd窗
(2)新标签页d窗
(3)alertd窗
针对不同类型的d窗,相应采取不同的定位措施。
由于不知问题中实际的d窗类型,在此笼统说下:
1、divd窗
对于此类d窗,可以直接用 find_element_by_ 得到 div 窗口中各元素,再进行 *** 作即可,需要注意的一点是,需要等 div 窗口元素加载完毕之后,再去获取窗口中的元素。
2、新标签页d窗
新标签页d窗,则需要进行窗口的切换。从看,问题中的d窗应该不属于此类d窗。
3、alertd窗
此类d窗是由 js 执行 alert、confirm、prompt等生成的d窗,其应对方法是:
使用 switch_toalert() 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/send_keys 方法进行 *** 作。
>
1、问题发生描述:
从一个页面进行点击等 *** 作,页面跳转到第二个页面,对第二个页面中的元素,采取任何措施定位都报错,问题报错点如下:
2、出现问题的原因:
窗口句柄还停留在上一个页面,对于当前新d出的页面还没有定位,因此新页面的任何元素都定位不到
3、解决方案:
在新页面 *** 作元素之前,需添加句柄 *** 作,方式如下:
1、使用drivercurrent_window_handle #获取当前窗口句柄,添加此方法,仍报相同的错误,因此不能采用这种方式进行解决问题
2、使用driverswitch_to_window(driverwindow_handles[1]),或者 driverswitch_to_window(selfdriverwindow_handles[-1]) ,两种方式中任选一种即可找到对应的元素
添加后的代码如下:
每天记录进步一点点
以上就是关于selenium 怎么定位动态的元素全部的内容,包括:selenium 怎么定位动态的元素、Python+selenium 怎么定位自定义d窗元素、selenium 获取table中的元素。python等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)