鱼C论坛

 找回密码
 立即注册
查看: 1643|回复: 16

关于selenium定位iframe元素

[复制链接]
发表于 2022-3-19 12:10:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

ifram定位问题

ifram定位问题

有大神能帮忙解释一下这个要怎么才能选中这个框架?

语句:driver.switch_to.frame(driver.find_elements_by_xpath("//iframe[starts-with(@id,'tab_b_')][3]"))

提示:Message: invalid argument: invalid 'id'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-19 14:26:11 | 显示全部楼层
driver.switch_to.frame(driver.find_element_by_tag_name(‘iframe’)[3])
试试这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-19 15:16:43 | 显示全部楼层
深谙流年 发表于 2022-3-19 14:26
driver.switch_to.frame(driver.find_element_by_tag_name(‘iframe’)[3])
试试这个

提示:TypeError:'WebElement' object is not subscriptable
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-19 19:59:26 | 显示全部楼层
把网址发一下,我看看,
)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-19 20:26:26 | 显示全部楼层
深谙流年 发表于 2022-3-19 19:59
把网址发一下,我看看,
)

这个要内网才能访问的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-19 21:26:31 | 显示全部楼层
颖颖M杰杰 发表于 2022-3-19 20:26
这个要内网才能访问的

那好吧,用下标试试,百度查一下iframe用法,很多的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-19 22:38:33 | 显示全部楼层
本帖最后由 lightninng 于 2022-3-19 23:25 编辑

人家的id不是"tab_b_131340"?你少了后面6个数字当然找不到
另外建议既然使用id作为锚点,由于id在web页面中是唯一的,使用find_element_by_id方法更好,能避免自己在写xpath的时候的一些问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-20 11:04:56 | 显示全部楼层
深谙流年 发表于 2022-3-19 21:26
那好吧,用下标试试,百度查一下iframe用法,很多的


现在好像是已经进去嵌套了,但是又不确定是不是进去了。因为搜里面的css找不到元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-20 11:05:57 | 显示全部楼层
lightninng 发表于 2022-3-19 22:38
人家的id不是"tab_b_131340"?你少了后面6个数字当然找不到
另外建议既然使用id作为锚点,由于id在web页面 ...

那个ID不是唯一的,它每次都会变化。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-20 12:06:42 | 显示全部楼层
颖颖M杰杰 发表于 2022-3-20 11:05
那个ID不是唯一的,它每次都会变化。

我说的唯一是指在整个页面内,所有元素的id不能有相同的,既然id会变化,那将id作为锚点就不可靠,你需要找其他的方法,选择不变的属性作为锚点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-20 16:18:47 | 显示全部楼层
lightninng 发表于 2022-3-20 12:06
我说的唯一是指在整个页面内,所有元素的id不能有相同的,既然id会变化,那将id作为锚点就不可靠,你需要 ...

直接给方法不好吗,他都知道id会变,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-20 19:55:50 | 显示全部楼层
深谙流年 发表于 2022-3-20 16:18
直接给方法不好吗,他都知道id会变,

这论坛又不是答疑论坛,我从来只谈思路,偶尔有兴致才会码代码,编程水平本来就是再一次次处理问题中长进的,问题都靠别人,那以后也只能一直靠别人~~~
我说话比较直,如有冒犯,见谅~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 00:07:02 | 显示全部楼层
lightninng 发表于 2022-3-20 19:55
这论坛又不是答疑论坛,我从来只谈思路,偶尔有兴致才会码代码,编程水平本来就是再一次次处理问题中长进 ...


说的对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-22 22:18:58 | 显示全部楼层

对的。后来在网上看到其实都不用xpath,直接用driver.switch_to.frame(2)就可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-23 00:58:54 | 显示全部楼层
颖颖M杰杰 发表于 2022-3-22 22:18
对的。后来在网上看到其实都不用xpath,直接用driver.switch_to.frame(2)就可以

这个就是下标呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-23 23:04:32 | 显示全部楼层

其实是因为之前已经跳进第二个框架忘记跳出来了,所以用了很多方法都不行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-23 23:48:31 | 显示全部楼层
颖颖M杰杰 发表于 2022-3-23 23:04
其实是因为之前已经跳进第二个框架忘记跳出来了,所以用了很多方法都不行。

思路理顺就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 10:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表