Webdriver访问嵌入在父页面div中的页面元素

时间:2016-06-16 07:25:37

标签: c# jquery selenium automation webdriver

当在母版页(URL 1)上单击按钮时,我们有一个页面(URL 2)嵌入或加载到另一个页面(母版页)的Div元素(弹出窗口)中。

我无法访问此嵌入页面上的元素。

firepath开发人员插件显示,有两个对象(Top Window URL 1和另一个具有不同的URL 2)。当我尝试在第2页URL 2上使用xpath定位器突出显示任何元素时,由于选择的对象/文档是Top Window,因此它不成功。要访问第2页上的元素,需要更改文档。

尝试使用SwitchTo方法,但没有运气。嵌入的页面不会加载到单独的窗口中,也不会加载到Iframe中。

SwitchTo方法只能在打开另一个窗口或页面上存在Iframe时使用。

是否有任何想法或解决方案可以更改文档上下文,以便将所有新命令发送到此新页面2.

我使用的是C#bindings v2.53。

提前致谢。

2 个答案:

答案 0 :(得分:1)

尝试使用:

driver.SwitchTo().Window(driver.WindowHandles.ToList().Last());

答案 1 :(得分:0)

我遇到了问题并最终回答了问题。

非常简单。它只是用jquery来完成。

{driver.executeScript(" return $(' body / deep /< #yourSelector>')}

这段代码只是从shadow DOM中绘制元素,可以进一步用于模拟用户操作... :)