1
我试图在html页面上填写表单,我相信它包含在框架中。 html的相关部分如下所示:如何使用python selenium访问框架
<frameset rows="*" cols="*,183" frameborder="NO" border="0" framespacing="0">
<frameset rows="61,28,*,0,0" cols="*" frameborder="NO" border="0" framespacing="0">
<frame src="fr1_tab1.jhtml?NUM1=1462489510565" scrolling="NO" noresize name="frame1" title="page header - navigation">
<frame src="fr4_top.jhtml?NUM1=1462489510565" scrolling="NO" noresize name="frame1b" title="page header - search">
<frame name="frame4" title="main body" src="processShowMyPeapodPage2.jhtml?NUM1=1462489510565" noresize scrolling="AUTO">
<frame src="frame6.jhtml" marginwidth="0" marginheight="0" name="frame6" noresize frameborder="NO" border="0" title="empty">
<frame src="frame8.jhtml" marginwidth="0" marginheight="0" name="frame8" noresize frameborder="NO" border="0" title="empty">
</frameset>
我正在查找的相关信息位于frame1b内部。使用Selenium,我已经证实,frame1b确实位于页面上:
<code>
for thing in driver.find_elements_by_tag_name('frame'):
print thing.get_attribute('name')
</code>
,输出:
frame1
frame1b
frame4
frame6
frame8
frame2
frame3
cancelFrame
frame5
frame6
所以经过这一切,我尝试使用driver.switch_to_frame('frame1b')
,但我得到的错误NoSuchFrameException: Message: no such frame
。
我的问题是,我怎么能进入这个框架,或者如果没有必要进入这个框架来访问它的一个窗体,我该如何直接访问窗体?
好从萤火 –
检查你的框架或元素后,有截图这是从90年代一个网站?我还没有看到这些过时的帧......这里最好的选择是使用switch_to_frame函数切换到该帧 –