1

我想单击一个按钮* -创建订单* 它位于 Iframe 下。为此,我需要将驱动程序切换到 iframe ,为此我需要先找到 iframe。现在我已经尝试了一切来找到这个 iframe。当我开始挖掘时,我意识到如果我这样做

WebElement table= dr.findElement(By.xpath(or.getProperty("html/body/div[4]/form/table/tbody/tr[2]")));

我得到了 table.size() 的一些价值

但如果我这样做:

WebElement table= dr.findElement(By.xpath(or.getProperty("html/body/div[4]/form/table/tbody/tr[3]")));

我得到0计数。

我花了很多时间才到达这个框架。当我使用 cssSelector 或 xpath 失败时,我开始遍历每个节点,这就是我发现它的方式。请帮忙。

4

1 回答 1

0

假设您使用的是 Java,您可以通过SwitchTo().Frame()三种方式处理 iframe

  1. 通过 iframe 名称或 ID。如果 iframe 有name="frameName"or id="frameID",您可以使用dr.SwitchTo().Frame("frameName")or dr.SwitchTo().Frame("frameID")

  2. 通过 iframe 元素。您可以通过以下方式解决 iframe: dr.SwitchTo().Frame(dr.findElement(By.Css("table>tbody>tr:nth-child(3)>iframe")));

  3. 按计数,从 0 开始。您可以通过以下方式寻址 iframe: dr.SwitchTo().Frame(0),这将切换到第一个 iframe。

对于#2,如果您在问题中包含一些 html,包括有问题的 iframe 以及其上方的几行,我们可以在 CSS 选择器上为您提供更好的帮助。

于 2013-11-05T23:04:21.060 回答