使用Selenium更改内容后识别Iframe中的元素

时间:2014-02-17 05:49:13

标签: c# iframe selenium selenium-webdriver

问题

我有一个包含表单的iframe,一旦我提交表单,iframe的内容会根据信息更改为其他内容。所以我需要验证结果中的元素/文本作为我的测试的一部分

我做了什么

我使用Switch()。Frame将数据提交给iframe,并使用“WebDriverWait”等待结果(我正在等待一个元素)

问题

提交后,新的元素无法识别,“等待元素”在超时后失败,即使结果屏幕在视觉上加载到iframe(我也尝试增加时间,但没有运气)


我做错了吗?或者任何人都可以给我建议吗?

非常感谢任何帮助

3 个答案:

答案 0 :(得分:0)

我认为在提交之后 - 元素现在变了,元素不在iframe中。

使用:

driver.switchTo().defaultContent();

尝试识别元素。

我不太确定。但是你可以尝试一下。

答案 1 :(得分:0)

是重新加载完整表单还是只提供一些您提供的文本/信息?

答案 2 :(得分:0)

我正在研究相同的场景,这是有效的,你可以尝试:

     driver.switchTo().frame(frameid);
       driver.findElement(By.cssSelector("input[name=\"login\"]")).click();//whatever you want to perform in frame.
      driver.switchTo().defaultContent();
       Thread.sleep(3000);
      driver.switchTo().frame(frameid);
      driver.findElement(By.cssSelector("input[name=\"login\"]")).getText();//Whar ever you want to perform.

如果您有任何疑虑,请告诉我。 享受!