我正在使用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之间引入等待,但它仍然给出了同样的错误。
我不知道为什么它导致应用程序崩溃,因为它适用于某些情况。
有没有人有类似的经历或能想到任何解决方案?
答案 0 :(得分:1)
我使用此代码通过src选择iframe并且它可以工作:
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[src=\"SRC_OF_FRAME\"]")));