Selenium(十二)嵌套frame定位
第一种:iframe有id、name属性
网页上有3个frame:header、menu、main,分别代码顶部、左侧、右侧(其中menu、main在另外一个frameset中)

如何定位到“header”框架:
driver.switch_to_frame("header")
如何定位到“main”框架:
driver.switch_to_default_content()
driver.switch_to_frame(driver.find_element_by_name("main"))
第二种:iframe无id或name属性

如何定位到“iframe”框架:
frame1=driver.find_element_by_tag_name("iframe")
driver.switch_to_frame(frame1)
第三种:页面有多个iframe属性,且无name、id动态变化

#coding: utf-8
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By driver = webdriver.Firefox()
driver.get('http://you.163.com/') driver.find_element_by_xpath('//*[@id="j-yx-cp-m-siteNav"]/div/div[2]/div[1]/div[1]/div/div').click()
sleep(3) driver.find_element_by_xpath('//*[@id="j-yx-loginFormWrap"]/div/div[1]/div[2]/div[3]').click() driver.switch_to.frame(2) #从0开始,第三个iframe
driver.find_element_by_name("email").send_keys('ok.qq.com')
driver.find_element_by_name("password").send_keys('ok1')
driver.find_element_by_id('dologin').click()
Selenium(十二)嵌套frame定位的更多相关文章
- Java Selenium (十二) 操作弹出窗口 & 智能等待页面加载完成 & 处理 Iframe 中的元素
一.操作弹出窗口 原理 在代码里, 通过 Set<String> allWindowsId = driver.getWindowHandles(); 来获取到所有弹出浏览器的句柄, 然 ...
- selenium(二)查找定位目标 ID XPATH CSS 操作目标
简介: 我们只打开一个页面是没有什么意义的. 尽管你可以get很多次. selenium可以做的更多,比如找到百度的搜索框,输入我们要搜索的内容,再用鼠标点击搜索按钮,再把搜索结果提取出来…… 这篇文 ...
- java selenium (十二) 操作弹出窗口
selenium 中如何处理弹出窗口 阅读目录 原理 在代码里, 通过 Set<String> allWindowsId = driver.getWindowHandles ...
- Selenium(十二):操作Cookie、调用JavaScript、HTML5的视频播放
1. 操作Cookie 有时候我们想要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试的.WebDriver提供了操作Cookie的相关方法,可以读取.添加和删 ...
- Selenium(十):用By定位元素、鼠标事件、键盘事件
1. 用By定位元素 除了前面介绍的单位方法,WebDriver还提供了另外一套写法,即统一调用find_element()方法,通过By来声明定位的方法,并且传入对应定位方法的定位参数.具体如下: ...
- python+selenium十二:一个输入框双层input标签
先点击第一个,再对第二个进行操作,否则操作失败 driver.find_element_by_css_selector(".pwd").click()driver.find_ele ...
- React Native(十二)——嵌套WebView中的返回处理
情景描述: 从一个名为"My"的组件点击进去,进入一个列表(该列表内容为webView中内容),其中一个webView也可以点击进入详情页(也为webView),但是如果对导航栏不 ...
- python+selenium十:selenium的二次封装
python+selenium十:基于原生selenium的二次封装 from selenium import webdriverfrom selenium.webdriver.support.w ...
- python+selenium十:基于原生selenium的二次封装
from selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium ...
随机推荐
- stochastic noise and deterministic noise
在机器学习中,导致overfitting的原因之一是noise,这个noise可以分为两种,即stochastic noise,随机噪声来自数据产生过程,比如测量误差等,和deterministic ...
- 微信小程序之 语言特点
主页面的CSS样式默认为index.wxss,无需引入
- CentOS 安装tab命令补全
CentOS 安装tab命令补全 1. 安装epel 源 yum -y install epel-release 2. 加快yum速度 yum -y install yum-plugin-fastes ...
- [.Net Core] - 使用 NLog 记录日志到 Sql Server
1. 使用 Nuget 安装 NLog. 2. 在 Sql Server 中创建 NLog 数据表. CREATE TABLE [dbo].[NLogInfo]( ,) NOT NULL, [Date ...
- composer 无法配置命令行写入配置文件问题
composer config repo.packagist composer https://packagist.phpcomposer.com 这条命令无法修改composer.json 添加中国 ...
- Spring常用jar包功能详解
很多小伙伴包括我自己,在使用spring的时候导入了一堆jar包,但是并不明白每个jar的用途,使用spring的不同功能时也不知该导入哪个jar包,今天记录一下spring各个jar包的含义,供大家 ...
- Linux修改主机名方法
[root@lyx ~]# vim /etc/hosts vim代表修改,进入hosts文件进行添加192.168.10.128 hadoop128 [root@lyx ~]# hostname ...
- Python windows环境 搭建问题
环境安装包下载地址: https://pan.baidu.com/s/1bnVhHMZ?fid=642139599707514 百度地址: http://sw.bos.baidu.com/sw-sea ...
- POJ1322Chocolate--概论DP
题目在这里 每次从包装中取出一块巧克力并放在桌子上.如果桌子上有两个相同颜色的巧克力,则将这两个丢掉.如果包中有C种颜色的巧克力(颜色均匀分布),从包装中取出N个巧克力后,桌子上确实有M个巧克力的概率 ...
- 【转载】程序设计过程中SQL语句Where 1=1的作用
在Asp.Net网站或者Java网站的程序设计的过程中,很多时候我们可以看到拼接SQL语句的写法的时候都可以看到最前面有个Where 1=1这个条件,其实Where 1=1这是个恒等式,SQL语句写成 ...