【问题标题】:Webdriver access elements of a page which is embedded in div of parent pageWebdriver访问嵌入在父页面div中的页面元素
【发布时间】:2016-10-17 13:51:15
【问题描述】:

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

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

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

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

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

有没有人有任何想法或解决方案来更改文档上下文,以便将所有新命令发送到这个新页面 2。

我正在使用 C# 绑定 v2.53。

提前致谢。

【问题讨论】:

    标签: c# jquery selenium automation webdriver


    【解决方案1】:

    尝试使用:

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

    【讨论】:

    • 不,不起作用:(,底层URL的原因是不同的,因此即使它是活动窗口也不能访问元素。问题是如何更改搜索上下文。 ..
    • 你能给我网站看看吗
    • 更改搜索上下文。 ???尝试查看代码类型字符串中是否存在元素 pageSource = driver.PageSource;
    • 它托管在本地服务器上。
    • 你得到什么异常?
    【解决方案2】:

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

    其实很简单。它只是使用 jquery 解决。

    {driver.executeScript("return $('body /deep/ ')}

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      相关资源
      最近更新 更多