当元素在ifarm或farm中时,需要先进入到表单中,然后才能定位元素进行操作。直接对元素定位。会提示元素无法找到。
<!DOCTYPE html> <html> <head> </head> <body> <iframe id = ‘if‘ src="https://www.baidu.com" width="800" height=‘300‘> </iframe> </body> </html>
将上面HTML代码保存在文本编辑器中,不要在windows的笔记本中。文件名随便,后缀名.html或htm
使用switch_to.frame()可以切换表单,默认使用id或name定位,可以直接传对应的值。如果没有id或name属性,那就只能通过其他方式定位到之后再传进去
from selenium import webdriver dr = webdriver.Chrome() dr.maximize_window() dr.get(‘file:///C:/Users/ms/Desktop/dr.html‘) dr.switch_to.frame(‘if‘) st = dr.find_element_by_id(‘kw‘)#定位搜索输入框 st.send_keys(‘selenium‘)
可以试一下,把切换表单的代码去掉,是会提示元素无法找到的。
使用driver.switch_to.parent_frame(),如果是多层frame,可以从子frame跳回到父frame
使用driver.switch_to.default_content() 切换回主文档,也就是跳出所有frame
原文地址:https://www.cnblogs.com/myal/p/9378361.html
时间: 2024-10-08 09:32:54