例如网页代码为:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<iframe id= "baidu" name="百度" src="http://www.BAIDU.com" HEIGHT="300" WIDTH="1280"></iframe>
<iframe id= "sougou" name="搜狗" src="https://www.sogou.com/" HEIGHT="300" WIDTH="1280"></iframe>
</body>
</html>

页面如下:


当我们需要去定位百度搜索框的ID时,如上面的源码所示,是没有百度搜索框的ID,因为百度和搜狗页面是嵌套的链接,我们需要切换到百度的域里面,才可以定位到搜索框的ID

from selenium import webdriver
driver = webdriver.Firefox()
driver.switch_to.frame(0) # 1.用frame的index来定位,第一个是0
# driver.switch_to.frame("baidu") # 2.用id来定位
# driver.switch_to.frame("百度") # 3.用name来定位
# driver.switch_to.frame(driver.find_element_by_tag_name("百度")) # 4.用WebElement对象来定位
# driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@id,'baidu')]")) # 5.用xpath定位,传入WebElement对象

driver.switch_to.frame('baidu) # iframe一层一层的切入
driver.switch_to.parent_frame() # iframe退后操作,一层一层的退回
driver.switch_to.default_content() # 切换到主页面

注意:

使用driver.switch_to_frame()时,会提示该方法已经过时;

需要使用新的driver.switch_to.frame()方法。

selenium切换frame(iframe)的更多相关文章

  1. Selenium 切换 Frame

    我们知道网页中有一种节点叫作 iframe ,也就是子 Frame ,相当于页面的子页面,它的结构和外部网页的结构完全一致. Selenium 打开页面后,它默认是在父级 Frame 里面操作,而此时 ...

  2. python+selenium 切换至iframe

    方法一: from selenium import webdriver driver = webdriver.Firefox() driver.switch_to.frame(0) # 1.用fram ...

  3. selenium之 定位以及切换frame(iframe)

    Set<String> windows = driver.getWindowHandles();        int count = 0;        for(String handl ...

  4. 【Selenium2】【selenium之 定位以及切换frame(iframe)】

    参考:http://blog.csdn.net/huilan_same/article/details/52200586 总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切, ...

  5. 【转载】selenium之 定位以及切换frame(iframe)

    更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解 总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层 ...

  6. Selenium 多表单(frame/iframe)切换

    frame标签有frameset.frame.iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe需要切换进去才能定位到其中的元素 比如下面这个网 ...

  7. Selenium:多表单(frame/iframe)切换(Switch模块)

    frame标签有frameset.frame.iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe需要切换进去才能定位到其中的元素 比如下面这个网 ...

  8. selenium之 定位以及切换frame(iframe)(转)

    frame标签有frameset.frame.iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对selenium定位而言是一样的,seleni ...

  9. 【转】selenium之 定位以及切换frame

    转载自:http://www.voidcn.com/blog/huilan_same/article/p-6155896.html 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明 ...

随机推荐

  1. python安装教学

    1.首先登陆到python的官方网站 1https://www.python.org/ 2.鼠标放在Download上,点击下面对应的型号,我的是Windows 3.点击Windows到此页面,点击3 ...

  2. 第一篇(那些JAVA程序BUG中的常见单词)

    The local variable xxx may not have been initialized. 局部变量xxx可能尚未初始化 local variable 局部变量 initialized ...

  3. IDEA3.5最新版激活码

    https://blog.csdn.net/zty1317313805/article/details/81503550 https://www.cnblogs.com/iathanasy/p/946 ...

  4. 进击的Python【第十章】:Python的高级应用(多进程,进程间通信,协程与异步,牛逼的IO多路复用)

    Python的socket高级应用(多进程,协程与异步) 一.多进程multiprocessing multiprocessing is a package that supports spawnin ...

  5. 小心我“DIR”溢出你!

    转自https://blog.csdn.net/wql19881207/article/details/6300760 https://blog.csdn.net/wql19881207/articl ...

  6. ACM_逆序数(归并排序)

    帮挂科 Time Limit: 2000/1000ms (Java/Others) 64bit IO Format: %lld & %llu Problem Description: 冬瓜发现 ...

  7. 使用dubbox开发REST应用

    新建项目,添加Maven支持. 在pom.xml中添加依赖. <dependency> <groupId>org.jboss.resteasy</groupId> ...

  8. 464 Can I Win 我能赢吗

    详见:https://leetcode.com/problems/can-i-win/description/ C++: class Solution { public: bool canIWin(i ...

  9. Lena Sort 构造题,很多细节的模拟

    https://www.hackerrank.com/contests/101hack46/challenges/lena-sort 把题目转换成一颗二叉树,也就是当前的节点是cur,然后大的,放右边 ...

  10. vijos P1426兴奋剂检查 多维费用背包问题的hash

    https://vijos.org/p/1426 这是个好题,容易想到用dp[i][v1][v2][v3][v4][v5]表示在前i个物品中,各种东西的容量是那个的时候,能产生的最大价值. 时间不会T ...