颖颖M杰杰 发表于 2022-3-19 12:10:44

关于selenium定位iframe元素


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

语句:driver.switch_to.frame(driver.find_elements_by_xpath("//iframe"))

提示:Message: invalid argument: invalid 'id'

深谙流年 发表于 2022-3-19 14:26:11

driver.switch_to.frame(driver.find_element_by_tag_name(‘iframe’))
试试这个

颖颖M杰杰 发表于 2022-3-19 15:16:43

深谙流年 发表于 2022-3-19 14:26
driver.switch_to.frame(driver.find_element_by_tag_name(‘iframe’))
试试这个

{:9_221:}提示:TypeError:'WebElement' object is not subscriptable

深谙流年 发表于 2022-3-19 19:59:26

把网址发一下,我看看,
)

颖颖M杰杰 发表于 2022-3-19 20:26:26

深谙流年 发表于 2022-3-19 19:59
把网址发一下,我看看,
)

{:9_220:}这个要内网才能访问的

深谙流年 发表于 2022-3-19 21:26:31

颖颖M杰杰 发表于 2022-3-19 20:26
这个要内网才能访问的

那好吧,用下标试试,百度查一下iframe用法,很多的

lightninng 发表于 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的时候的一些问题。

颖颖M杰杰 发表于 2022-3-20 11:04:56

深谙流年 发表于 2022-3-19 21:26
那好吧,用下标试试,百度查一下iframe用法,很多的

{:9_221:}现在好像是已经进去嵌套了,但是又不确定是不是进去了。因为搜里面的css找不到元素。

颖颖M杰杰 发表于 2022-3-20 11:05:57

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

{:9_234:}那个ID不是唯一的,它每次都会变化。

lightninng 发表于 2022-3-20 12:06:42

颖颖M杰杰 发表于 2022-3-20 11:05
那个ID不是唯一的,它每次都会变化。

我说的唯一是指在整个页面内,所有元素的id不能有相同的,既然id会变化,那将id作为锚点就不可靠,你需要找其他的方法,选择不变的属性作为锚点

深谙流年 发表于 2022-3-20 16:18:47

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

直接给方法不好吗,他都知道id会变,

lightninng 发表于 2022-3-20 19:55:50

深谙流年 发表于 2022-3-20 16:18
直接给方法不好吗,他都知道id会变,

这论坛又不是答疑论坛,我从来只谈思路,偶尔有兴致才会码代码,编程水平本来就是再一次次处理问题中长进的,问题都靠别人,那以后也只能一直靠别人~~~
我说话比较直,如有冒犯,见谅~~

深谙流年 发表于 2022-3-22 00:07:02

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

{:10_279:}说的对

颖颖M杰杰 发表于 2022-3-22 22:18:58

深谙流年 发表于 2022-3-22 00:07
说的对

对的。后来在网上看到其实都不用xpath,直接用driver.switch_to.frame(2)就可以{:5_107:}

深谙流年 发表于 2022-3-23 00:58:54

颖颖M杰杰 发表于 2022-3-22 22:18
对的。后来在网上看到其实都不用xpath,直接用driver.switch_to.frame(2)就可以

这个就是下标呀

颖颖M杰杰 发表于 2022-3-23 23:04:32

深谙流年 发表于 2022-3-23 00:58
这个就是下标呀

{:9_240:}其实是因为之前已经跳进第二个框架忘记跳出来了,所以用了很多方法都不行。

深谙流年 发表于 2022-3-23 23:48:31

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

{:10_256:}思路理顺就好了
页: [1]
查看完整版本: 关于selenium定位iframe元素