webdriver 定位frameset中的frame
发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,最近在写页面的自动化脚本,在定位frameset 中的frame时,定位不到,经不断尝试,终于解决之,甚感欣慰,O(∩_∩)O~页面结构如下图:问题如下:我在登录成功后,为了判断用户名,先从默认状态d
最近在写页面的自动化脚本,在定位frameset 中的frame时,定位不到,经不断尝试,终于解决之,甚感欣慰,O(∩_∩)O~
页面结构如下图:
问题如下:我在登录成功后,为了判断用户名,先从默认状态driver.switch_to_frame("topFrame")下,但是之后再定位左侧菜单栏时,就定位不到元素了,通过查看结构,原来是处在另外一个frame中(leftFrame),但是此时再通过driver.switch_to_frame("leftFrame"),提示找不到frame,从网上查找解决方法,有人说最好不用driver.switch_to_frame()方法,而是改用driver.swich_to().frame()方法,但是试了试,报has no __called()__方法,最后又找方法说:需要先driver.switch_to_defaultContent(),然后再driver.switch_to_fram()到需要的frame当中,尝试过后也不行
解决方法:先driver.find_element_by_id("frame")定位到topFrame下同级的frameset,然后再left_frame = frameset.find_element_by_name("leftFrame"),最后再driver.switch_to_frame(left_frame)即可。
总结:具体使用何种方法,主要还是看页面结构,不同结构使用不同方法,哇咔咔O(∩_∩)O~