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()

原文地址:https://www.cnblogs.com/dinghanhua/p/9737976.html

时间: 2024-08-04 08:57:07

Selenium入门7 跳入/跳出frame的相关文章

python3+selenium入门10-表单切换

当元素在ifarm或farm中时,需要先进入到表单中,然后才能定位元素进行操作.直接对元素定位.会提示元素无法找到. <!DOCTYPE html> <html> <head> </head> <body> <iframe id = 'if' src="https://www.baidu.com" width="800" height='300'> </iframe> </bo

selenium入门

selenium入门(selenium1.元素定位通过id定位元素       如:WebElement ele = By.id("idName"); 通过Name定位元素     如:WebElement ele = By.Name("name"); 2.多国语言切换:ChromeOptions op=new ChromeOptions(); //选择浏览器op.addArguments("--lang=en-US");      // 选择所

ajax 跳入error的一些原因

先放一个标准的jquery的ajax代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2": sort2,"sort3":sort3)}, dataType: 'json', success: function (sort) { $("#noneSelect").remove(); var optionstring = ""; for

Linux内核系列—12.b.操作系统开发之从Loader跳入保护模式

现在,内核已经被我们加载进内存了,该是跳入保护模式的时候了. 首先是GDT以及对应的选择子,我们只定义三个描述符,分别是一个0~4GB的可执行段.一个0~4GB的可读写段和一个指向显存开始地址的段: ; GDT ; 段基址 段界限, 属性 LABEL_GDT: Descriptor 0, 0, 0 ; 空描述符 LABEL_DESC_FLAT_C: Descriptor 0, 0fffffh, DA_CR|DA_32|DA_LIMIT_4K ;0-4G LABEL_DESC_FLAT_RW: D

Selenium 入门到精通系列:五

Selenium 入门到精通系列 PS:显式等待.隐式等待.强制等待方法 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019-04-23 16:12:33 # @Author : BenLam # @Link : https://www.cnblogs.com/BenLam/ from selenium import webdriver from selenium.webdriver.common.by import B

Python Selenium入门学习材料整理

Python Selenium入门学习材料整理一.简介及环境搭建1.selenium 介绍:selenium 是一个 web 的自动化测试工具,可以自动打开浏览器执行页面打开.页面内容抓取.页面元素搜索,是相对好上手的网页爬取工具.2.安装selenium:pip install selenium3.安装webdriver:selenium打开网页需要有webdriver来调用浏览器.Firefox:https://github.com/mozilla/geckodriver/releases/

selenium python (八)定位frame中的对象

#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip'#在测试过程中经常遇到frame嵌套的应用,加入页面上有A.B两个frame,B在A内,那么要找到B中的元素,则首先应找到A然后再到B.可以通过switch_to_frame from selenium import webdriverimport  os #打开页面driver = webdriver.Firefox()file_path = 'file:///' +

selenium入门基础知识

内容转载自:http://blog.csdn.net/huangbowen521/article/details/7816538 1.selenium介绍: Selenium是一个浏览器自动化操作框架.Selenium主要由三种工具组成.第一个工具SeleniumIDE,是Firefox的扩展插件,支持用户录制和回访测试.录制/回访模式存在局限性,对许多用户来说并不适合,因此第二个工具——Selenium WebDriver提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发实践的应

selenium 入门

selenium  使用的时候要注意 浏览器的版本 和对应 jar 包 浏览器的环境变量设置 System.setProperties("key","value") 判断页面元素加载完成 web的自动化测试中,我们经常会遇到这样一种情况:当我们的程序执行时需要页面某个元素,而此时这个元素还未加载完成,这时我们的程序就会报错.怎么办?等待.等待元素出现后再进行对这个元素的操作. 在selenium-webdriver中我们用两种方式进行等待:显性的等待和隐性的等待.