ITPub博客

首页 > 移动开发 > 移动测试 > web自动化测试过程中的iframe如何处理?

web自动化测试过程中的iframe如何处理?

原创 移动测试 作者:bcbxhome 时间:2020-11-04 13:55:31 0 删除 编辑

我们在做自动化测试过程中经常会遇到控件定位不到的情况,具体抛出的错误信息如下:

  1. selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"email"}

复制代码


但是,我们来看看页面代码,再看看自己写的代码

  1. emailName = driver.find_element_by_name('email')

复制代码




没错呀,这个错不了的呀,应该肯定能定位到的,那么一般就会有几种原因吧,第一种就是等待时间不够,第二种就是多窗口,第三种肯定就是iframe了。

我们顺腾模块,往上找会发现,哦,确实有iframe呀。。。



那么有iframe怎么处理呢,如果我们的iframe有id或者name的话,并且id或者name的属性值不为空的话,并且id和name的属性值不是动态变化的话,
我们就可以直接通过如下进行切入到iframe中:

  1. driver.switch_to.frame('x-URS-iframe')

复制代码



如果id或者name是动态的呢,何为动态的呢,比如像如下的id属性值

  1. id="auto-id-1604073488440"

复制代码


这种怎么办?无所谓,随便用一种定位方式先定位到iframe,然后再切入

  1. dd = driver.find_element_by_xpath("//div[@id='loginDiv']/iframe")

  2. driver.switch_to.frame(dd)

  3. emailName = driver.find_element_by_name('email')

复制代码


此时就大功告成了。。

当然如果想从iframe切出来,那么怎么办?

  1. driver.switch_to.parent_frame( 【编测编学】第一届软件测试挑战赛等你报名参加赢大奖!)#从子frame切回到父frame

  2. driver.switch_to.default_content()#切回主文档



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69985967/viewspace-2732081/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
行业在岗10年+大牛集合地,线下坐标西安,多年致力于企业新人的培养,擅长职业规划,零基础转行学测试方向咨询师。

注册时间:2020-10-24

  • 博文量
    34
  • 访问量
    23974