我想转移到新的iframe执行一些操作并移回当前的子嵌套iframe

时间:2018-04-11 00:37:17

标签: java selenium iframe

<Iframe1>
 <Iframe2>
    <Iframe3> </iframe3>
   <iframe4>
    <input> </input>   ----- on click of this input will launch new 
                                   iframe5
  <input2></input2>   --- then need to perform action on this input
</iframe4>
</Iframe2>
</iframe1>

新的iframe

<Iframe5>
..
..
</iframe5>

嗨我有基于POM模型的selenium java代码。 我的班级创建者将对上述输入字段执行操作。 此类包含当前子iframe对象,其余所有父iframe都存在于其他类

1.点击第一个输入启动新框架即iframe5 ,该框架不属于我能够对其执行操作的任何父级

2.但我想处理回到嵌套子iframe以对下一个输入字段执行操作的过程

我现在可以通过再次调用所有iframe来完成此操作。但我想要战略性地处理,因为我在所有页面上都有这个功能,并且不想编写不必要的代码

Class people
{
    Switchto(Iframe1)
}

class peoplesearch extends People
{
    switchto(Iframe2)
}

class createperson
{
    switchto(Iframe4)
}

class control
{
    switchto(defaultcontent)
    switchto(ifrmae5)
    switchto(defaultcontent)
}

1 个答案:

答案 0 :(得分:0)

根据 HTML 您已共享和代码试用,您似乎已经浏览了多个嵌套的<iframe>标记。

现在,您已经在 iframe5 上执行了操作,现在想要回到嵌套的子iframe ,或许您必须找出确切的<iframe>标记所需元素的存在位置,并相应地切换到相关的<iframe>。你不必通过再次调用所有iframe 来实现这一点。根据最佳实践,您需要在调用Switchto()之前引导 WebDriverWait

您可以在此处找到有关How to properly wait for a frame to be available in python-selenium?

的详细讨论