这两天在写自动出表小程序,使用的python+selenium,遇到了问题。
明明那个查询框(input)就在那,但selenium就是获取不到!
努力了两天,过程略过,终于找到原因啦。
这个网站的主体内容会放在iframe里,这个iframe的name是空的,id是“iframe1”。
我使用switch_to.frame(id)跳转来解决。
但网站实际上,一开始就有一个默认的iframe,id是“iframe1”,name是空的。
需要数据时,才临时生成一个iframe,id也是“iframe1”,name也是空的。
也就是说,网页里实际有两个iframe,id都是“iframe1”,name都是空的。
因为默认的iframe生成的早,所以它排前面。我使用switch_to.frame(id)跳转,一定会跳到第一个iframe里,从而像个没头的苍蝇,找不到出路。
解决办法是,switch_to.frame除了id和name,还支持按顺序跳转,比如我这种情况,使用switch_to.frame(1),即可跳到正确的iframe里。
撒花庆祝:-)。