Ste*_*oss 2 selenium webdriver selenium-webdriver
我正在使用Selenium WebDriver(v2.2)"切换"到"顶部"框架,如下所示:
webdriver.SwitchTo().Frame("relative=top");
Run Code Online (Sandbox Code Playgroud)
这会生成错误消息:
Unable to locate frame: relative=top
Run Code Online (Sandbox Code Playgroud)
这可能是因为我使用的页面没有框架吗?
编辑
不幸的是,涉及窗口切换的两种解决方案均
webdriver.SwitchTo().Window(winHandle);
webdriver.SwitchTo().DefaultContent();
Run Code Online (Sandbox Code Playgroud)
严格来说,实际上,他们并没有失败.但是,这就是问题所在:假设我在一帧内获取一个IWebElement.这是代码大致的样子:
descend-into-the-frame
grab-the-element
ascend-out-of-the-frame-to-the-top
use-the-element
Run Code Online (Sandbox Code Playgroud)
当我使用-the-element时,我得到一个"缓存中不存在元素"异常.这是因为从框架上升到顶部会切换窗口,从而清除缓存.真烦人 不过我找到了一个解决方法:
ascend-out-of-the-frame-to-the-top
descend-into-the-frame
grab-the-element
use-the-element
Run Code Online (Sandbox Code Playgroud)
这仍然意味着我必须注意元素不在缓存的情况.但至少只要我在拿取元素后立即使用它,我就可以了.
感谢大家的帮助!
Sur*_*rya 11
要从其他框架切换顶部框架,您可以使用:
driver.switchTo().defaultContent();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17144 次 |
最近记录: |