在Selenium 2中:driver.switchTo()。frame()导致Application崩溃

时间:2012-07-26 12:34:44

标签: selenium webdriver

我正在使用Selenium 2和IE7。

我正在测试的应用程序中存在很多iframe。 所以我使用driver.switchTo().frame()方法在iframe之间切换。 在切换到iframe之前,我也使用了driver.switchTo().defaultContent()

但是在某些情况下,driver.switchTo().frame()会导致应用程序崩溃。 以下是eclipse中的错误:

Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: javaw.exe
  Application Version:  6.0.70.6
  Application Timestamp:    484e4780
  Fault Module Name:    IEDriver.dll
  Fault Module Version: 0.0.0.0
  Fault Module Timestamp:   4fdf5b90
  Exception Code:   c0000005
  Exception Offset: 0008a71e
  OS Version:   6.0.6001.2.1.0.274.10
  Locale ID:    1033
  Additional Information 1: 1699
  Additional Information 2: 3c7b32a427f0a23d017c01e406809b93
  Additional Information 3: 437a
  Additional Information 4: 0abbaf052c4358d69b1ef6b054f6ab09

我甚至尝试通过driver.findElement(By.id(iframeID)).getAttribute("src")获取iframe的来源,并且我能够获得iframe的来源。 我也尝试在切换iframe之间引入等待,但它仍然给出了同样的错误。 我不知道为什么它导致应用程序崩溃,因为它适用于某些情况。

有没有人有类似的经历或能想到任何解决方案?

1 个答案:

答案 0 :(得分:1)

我使用此代码通过src选择iframe并且它可以工作:

driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[src=\"SRC_OF_FRAME\"]")));