拉诺雷克斯。 iframe 访问问题

Ranorex. iframe access issue

我尝试将 WebDriver 端点与 Ranorex 一起使用,当 Ranorex 使用简单路径时一切正常,但当它与 iframe 一起使用时就不行了。

最好能举个例子:

<div id="layout">
    <span id="element1"></span>
    <iframe id="frame1">
        #document
            <html>
                <span id="element2"></span>
            </html>
    </iframe>
</div>
  1. 我可以使用以下方式访问任何元素 Ranorex 端点:

    //span[#'element1']
    
    //iframe[#'frame1']//span[#'element2']
    
  1. 我可以访问包含在 iframe 之外的元素:(包括 iframe 本身)

    //span[#'element1']
    
    //iframe[#'frame1']
    
  2. 当我尝试使用 WebDriver 端点访问 iframe 中包含的任何元素时出现错误:

    //iframe[#'frame1']//span[#'element2']
    

如何在 iframe 中使用元素?

我找到了解决方案。

与在 Selenium 中一样,我们需要在帧之间切换。 我发现 WebDriverDocument 具有切换框架的能力:

WebDriverDocument wd = WebDriverDocument.FromPatch("//*[1]");
wd.SwitchToFrame("//iframe[@id='frame1']", "xpath");
// wd.SwitchToFrame("frane1", "id"); - also availabled

之后我可以管理包含内部 iframe 的元素:

WebElement  wl  = "//span[#'element2']";