多层框架/窗口定位
【摘要】 大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、测试开发、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流作者简介:CSDN java领域新星创作者blog.csdn.net/bug…掘金LV3用户 juejin.cn/user/bug…阿里云社区专家博主,...
大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、测试开发、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流
作者简介:
- CSDN java领域新星创作者blog.csdn.net/bug…
- 掘金LV3用户 juejin.cn/user/bug…
- 阿里云社区专家博主,星级博主,developer.aliyun.com/bug…
- 华为云云享专家 bbs.huaweicloud.com/bug…
@TOC
多层框架/窗口定位
对于一个web 应用,经常会出现框架(
frame
) 或窗口(window
)的应用,这也就给我们的定位带来了一定的困难!
- 定位一个框架
frame
:switch_to.frame(name_or_id_or_frame_element)
- 定位一个窗口
window
:switch_to.window(name_or_id_or_window_element)
多层框架定位
witch_to.frame(name_or_id_or_frame_element)
:通过frame的id
或者name
或者frame自带的其它属性
来定位框架,这里switch_to.frame()
把当前定位的主体切换了frame
里。
switch_to.default_content
:从frame中嵌入的页面里跳出,跳回到最外面的默认页面中.
以一下html实例说明:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>frame</title>
<link
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstra
p-combined.min.css" rel="stylesheet" />
<script type="text/javascript">$(document).ready(function(){
});
</script>
</head>
<body>
<div class="row-fluid">
<div class="span10 well">
<h3>frame</h3>
<iframe id="f1" src="inner.html" width="800",
height="600"></iframe>
</div>
</div>
</body>
<script
src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.
min.js"></script>
</html>
inner.html
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>inner</title>
</head>
<body>
<div class="row-fluid">
<div class="span6 well">
<h3>inner</h3>
<iframe id="f2" src="http://www.baidu.com"
width="700"height="500"></iframe>
<a href="javascript:alert('watir-webdriver better than
selenium webdriver;')">click</a>
</div>
</div>
</body>
</html>
下面通过switch_to.frame()
方法进行定位:
#coding=utf-8
from selenium import webdriver
import time
import os
driver = webdriver.Chrome()
file_path = 'file:///'+os.path.abspath('../seleniumhtml/frame.html')
# 打开frame.html网页
driver.get(file_path)
driver.implicitly_wait(20)
# 从默认页面到 f1 框架页面
driver.switch_to.frame("f1")
#点击click链接
driver.find_element_by_link_text("click").click()
# 回到默认页面
driver.switch_to.default_content()
time.sleep(3)
driver.quit()
多层窗口定位
有可能嵌套的不是框架,而是窗口,还有真对窗口的方法:
switch_to.window
用法与switch_to.frame
相同:driver.switch_to.window("windowName")
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)