精华内容
下载资源
问答
  • 今天为大家介绍一个模拟登陆126网易邮箱的案例,大多数登陆都是用input,今天这个案例特殊一点,126登陆框是使用iframe进行嵌套的,所以需要先切换到该iframe,但是还有要用到selenium来控制浏览器 导入第三方库 登陆...

    今天为大家介绍一个模拟登陆126网易邮箱的案例,大多数登陆都是用input,今天这个案例特殊一点,126登陆框是使用iframe进行嵌套的,所以需要先切换到该iframe,但是还有要用到selenium来控制浏览器

    导入第三方库

    登陆函数

    输入邮箱信息

    输入密码信息

    点击登陆

    启动函数



    运行结果

    展开全文
  • selenium python iframe切换

    千次阅读 2017-01-24 10:23:55
    若是网页中存在iframe,此时是获取不到元素的,因此需要切换iframe。 对于selenium3,python切换方式是: driver=webdriver.Chrome() driver.switch_to.frame(ifame_id) 当然为了避免强制设置等待页面...

    若是网页中存在iframe,此时是获取不到元素的,因此需要切换到iframe。

    对于selenium3,python的切换方式是:

    driver=webdriver.Chrome()

    driver.switch_to.frame(ifame_id)


    当然为了避免强制设置等待页面加载时间,可以写成如下形式:

    WebDriverWait(driver, 240).until(EC.frame_to_be_available_and_switch_to_it(iframe_id))


    展开全文
  • 1.根据name,id切换 self.driver.switch_to.frame(‘name’) 2.根据tagname切换 self.driver.switch_to.frame(driver.find_elements_by_tag_name('iframe')[1]) 3.返回上一层(父iframe) driver.switch_to.parent...

    1.根据name,id切换

    self.driver.switch_to.frame('name')
    

    2.根据tagname切换

    self.driver.switch_to.frame(driver.find_elements_by_tag_name('iframe')[1])
    

    3.返回上一层(父iframe)

    driver.switch_to.parent_frame()
    

    4.返回主iframe

    self.driver.switch_to.default_content()
    
    展开全文
  • 1、前言作为一个自动化测试的小白,抱着成为大神的心态,开始了学习自动化...2、环境系统:macOS 10.12.6python版本:3.6.4IDE : pyCharm浏览器:chrome3、问题以及解决方法根据书中的例子:from selenium import ...

    1、前言

    作为一个自动化测试的小白,抱着成为大神的心态,开始了学习自动化测试的历程;

    听朋友说虫师的selenium很好,于是选择了它

    但是今天刚开始学习不久就遇到了一个困扰了我两天的问题,

    决定把这个问题记录一下;


    2、环境

    系统:macOS 10.12.6

    python版本:3.6.4

    IDE : pyCharm

    浏览器:chrome



    3、问题以及解决方法

    根据书中的例子:

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get("http://www.126.com")
    
    driver.find_element_by_id("idInput").clear()
    driver.find_element_by_id("idInput").send_keys("username")
    driver.find_element_by_id("pwdInput").clear()
    driver.find_element_by_id("pwdInput").send_keys("password")
    driver.find_element_by_id("loginBtn").click()
    
    driver.quit()

    但是运行以后却发现代码报错:


    查看发现126邮箱的输入框ID不是“idInput”和“pwdInput”,

    而此时看到的输入框的id是动态的,所以不能使用

    于是将id更换成了name,可是运行后依然报以上错误,

    翻阅各种资料发现,一个网页中是可以嵌入好几个iframe的,也就是主页面中存在单独的小页面:

    而想要获得小页面中的元素,需要切换iframe,切换方式有三种:

    # 1.用frame的index来定位,第一个是0
    driver.switch_to.frame(0)  
    # 2.用id来定位
    driver.switch_to.frame("frame1")  
    # 3.用name来定位
    driver.switch_to.frame("myframe")  
    # 4.用WebElement对象来定位
    driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))  

    于是我选择了其中一种方法,但是结果还是不尽人意,还是找不到元素

    最后,最关键的来了,无意中使用了等待,于是问题就完美解决了

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get("http://www.126.com/")
    
    sleep(3)
    driver.switch_to.frame("x-URS-iframe")
    
    driver.find_element_by_name("email").clear()
    driver.find_element_by_name("email").send_keys("username")
    driver.quit()


    4、总结

    有些元素可能并非立即出来,是异步加载的,运行的时候中间加些等待时间

    问题自己一步一步的去查资料,解决出来的记忆会很深刻,并且在查资料的过程中还会学习到一些另外的知识

    加油!!!

    展开全文
  • #切换iframe,因为这个网站的iframe的id是动态的所以使用的是xpath定位 driver.switch_to.frame(driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]")) driver.find_element_by_name(...
  • 查看页面元素后确认为iframe面板。实现方法如下: driver.switch_to.frame('layui-layer-iframe1') 验证是否已经定位弹出窗口 text = driver.find_element_by_xpath('/html/body/div/div[2]').text print(text) ...
  • #窗口中的iframe切换,包括切换到默认窗口,iframe之前的切换iframe上下级的切换等 #qq邮箱实现窗口切换iframe切换 from selenium import webdriver import time #使用显性等待的时候需要导入的库文件 from ...
  • 方法:driver.switch_to_frame() 方法:driver.switch_to.frame()
  • driver.switch_to.default_content() #之前已经切换Iframe要释放掉了,因为嵌套好几个iframe ## 切换Iframe driver.switch_to.frame('nest-other-iframe') #这样在切换Iframe,操作下面拉下数据确定就有效果了 ...
  • 如果此处显示的是Top Window,表明元素在首页,不需要切换iframe 2.iframe 如果此处显示是iframe,则需要切换,driver.switch_to.frame() 注意:当此处为空白时,表明有2层iframe 二、切换iframe,可以通过id...
  • 一、selenium中iframe切换方法: 方法一:switch_to.frame  frame函数中提供了三种定位方法:by index, name, or webelement。 driver.switch_to.frame(‘frame_name’)  driver.switch_to.frame(1)  driver....
  • 前言 今天为大家介绍一个模拟登陆126网易邮箱的案例,大多数登陆都是用input,今天这个案例特殊一点,126登陆框是使用iframe进行嵌套的,所以需要先切换到该iframe,...
  • frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe会影响selenium定位 1.selenium提供了 switch_to.frame() 方法来切入frame 2.selenium提供了 ...
  • Scrapy+Selenium切换iframe抓取网易云音乐排行榜iframe标签Selenium (WEB自动化工具)Scrapy 框架 iframe标签 了解一下iframe 百度百科介绍的iframe 网易云音乐的iframe标签如图所示: Selenium (WEB自动化工具) ...
  • 切换窗口页签。 0是左边第一个,-1是右边第一个。 切换iframe框架。 查看页签是否包含iframe页签。 原理:如果没有找到id为mainiframe的iframe页签就会抛出异常。
  • 切换 iframe:1.由于登录按钮是在iframe上,所以第一步需要把定位器切换iframe上2.用switch_to_frame方法切换,此处有id属性,可以直接用id定位切换 iframeiframeiframe 区别:frame与iframe两者可以实现的...
  •         原以为知网还挺好爬的,毕竟在八爪鱼里面...后来想了一下可能是需要转iframe,试了一下,没想到还真是!如下图所示,数据都是在iframe下的。 需要先用switch_to....
  • Python+selenium iframe表单和多窗口切换

    千次阅读 2018-12-23 20:36:23
    iframe表单 在Web应用遇到frame/iframe表单嵌套页面通过webdriver的switch_to.frame()和switch_to.parent_content切入和跳出frame表单 driver.switch_to.frame(driver.find_element_by_xpath("xpath"))...
  • 1.frame和iframe的区别: frame是整个页面的框架,iframe是内嵌的框架 Iframe标记又叫浮动帧标记,可以用它将一个HTML文档嵌入在一个HTML中显示。它和Frame标记的最大区别是在网页中嵌入 的所包含的内容与整个页面...
  • 方案:从当前页面切换到目标元素所在页面 举例1:iframe id 部分匹配 iframe 长什么样?例句126邮箱登录界面 <iframe name="" frameborder="0" id="x-URS-iframe1617678675405.6267" scrolling="no" style=...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 214
精华内容 85
关键字:

python切换iframe

python 订阅