拉诺雷克斯。 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>
- Ranorex 端点使用:
我可以使用以下方式访问任何元素 Ranorex 端点:
//span[#'element1']
//iframe[#'frame1']//span[#'element2']
- WebDriver 端点使用:
我可以访问包含在 iframe 之外的元素:(包括 iframe 本身)
//span[#'element1']
//iframe[#'frame1']
当我尝试使用 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']";
我尝试将 WebDriver 端点与 Ranorex 一起使用,当 Ranorex 使用简单路径时一切正常,但当它与 iframe 一起使用时就不行了。
最好能举个例子:
<div id="layout">
<span id="element1"></span>
<iframe id="frame1">
#document
<html>
<span id="element2"></span>
</html>
</iframe>
</div>
- Ranorex 端点使用:
我可以使用以下方式访问任何元素 Ranorex 端点:
//span[#'element1'] //iframe[#'frame1']//span[#'element2']
- WebDriver 端点使用:
我可以访问包含在 iframe 之外的元素:(包括 iframe 本身)
//span[#'element1'] //iframe[#'frame1']
当我尝试使用 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']";