#iframe #webdriver #ranorex
#iframe #webdriver #ranorex
Вопрос:
Я пытаюсь использовать конечную точку 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?
Ответ №1:
Я нашел решение.
Как и в Selenium, нам нужно переключаться между фреймами. Я обнаружил, что WebDriverDocument имеет возможность переключать фреймы:
WebDriverDocument wd = WebDriverDocument.FromPatch("//*[1]");
wd.SwitchToFrame("//iframe[@id='frame1']", "xpath");
// wd.SwitchToFrame("frane1", "id"); - also availabled
После этого я могу управлять элементами, которые содержали внутренний iframe:
WebElement wl = "//span[#'element2']";