Selenium入门7 跳入/跳出frame

Posted dinghanhua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium入门7 跳入/跳出frame相关的知识,希望对你有一定的参考价值。

如果网页内嵌iframe,那么iframe里的元素是无法直接定位的,需要使用switch_to_frame进入frame操作; 之后需要再操作页面上非嵌入在iframe里的元素,需要使用switch_to_default_content跳回初始页面。

 

首先在脚本的文件夹里新建一个test3.html文件,将以下内容拷贝进去保存,作为测试用的页面。保存好了用浏览器打开看一下。也可找网上嵌入iframe的页面。自己写可以节约找网页的时间。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>iframe</title>
</head>
<body>

<h1>下面是一个frame</h1>
<iframe id="iframe1" src="http://www.baidu.com" width="100%"" height="300px"></iframe>

<a id="bing" href="http://www.bing.com">bing搜索</a>

</body>
</html>

 

上面的页面内嵌的百度首页。因为使用了iframe,所以定位百度搜索框报错。

技术分享图片

 

正确的脚本如下:

#coding=utf-8
#跳入跳出框架switch to frame;switch_to_default_content

from selenium import webdriver
import time
import os

#打开网页
filepath="file:///"+os.path.abspath("test3.html")
dr=webdriver.Firefox()
dr.get(filepath)
#跳入iframe操作
dr.implicitly_wait(60)#等待iframe加载
iframe=dr.find_element_by_id("iframe1")
dr.switch_to_frame(iframe)
dr.find_element_by_id("kw").send_keys("测试")
dr.find_element_by_id("su").click()
time.sleep(2)
#跳出ifame
dr.switch_to_default_content()
dr.find_element_by_id("bing").click()
time.sleep(2)

dr.quit()

 

以上是关于Selenium入门7 跳入/跳出frame的主要内容,如果未能解决你的问题,请参考以下文章

python selenium 获取不到iframe?

Selenium框架切换-----Selenium快速入门

Java和数据库结合的大作业,请问如何在Java实现多个用户角色登陆后跳出显示不同内容的面板,比如A跳入的

selenium代码练习(frame)

使用python简单封装selenium常用函数

音视频入门——H.264编码(宏块+片+帧)浅析