#selenium #iframe #document
Вопрос:
Я пытаюсь просмотреть локальный html-файл, в котором есть iFrame, и #документ под ним не загружается, когда он запускается с помощью автоматизации с использованием selenium .
Запуск через драйвер selenium:
lt;iframe id="xxxxx" name="yyyy"gt; .. Nothing is displaying ..
Открытие html-файла вручную или путем обновления с помощью кнопки обновления браузера:
lt;iframe id="xxxxx" name="yyyy"gt; #document lt;htmlgt;...lt;/htmlgt;
Примечание. В том же сеансе, использующем режим отладки, если мы загрузим страницу вручную с помощью обновления браузера, #документ загрузится, но если мы нажмем «Step Over» в режиме отладки и перейдем к следующему шагу, затем снова #документ исчезнет.
Попробовал все приведенные ниже загрузки страницы, но результат тот же: #документ в iFrame пропадает, как только выполняется какой-либо шаг с помощью объекта драйвера.
PFB обновление страницы, которое было предпринято,
public void driver_refresh() { getDriver().navigate().refresh(); wait_for_element(3); } public void action_refresh() { Actions act = new Actions(getDriver()); Action a1= act.keyDown(Keys.F5).keyUp(Keys.F5).build(); a1.perform(); } public void js_refresh() { ((JavascriptExecutor) getDriver()).executeScript("history.go(0)"); wait_for_element(3); } public void robot_refresh() throws Exception { Robot r = new Robot(); r.keyPress(KeyEvent.VK_CONTROL); r.keyPress(KeyEvent.VK_R); r.keyRelease(KeyEvent.VK_R); r.keyRelease(KeyEvent.VK_CONTROL); } public void robot_refresh_f5() throws Exception { Robot r = new Robot(); r.keyPress(KeyEvent.VK_F5); r.keyRelease(KeyEvent.VK_F5); wait_for_element(5); } public void waitForLoad() { new WebDriverWait(getDriver(), 30).until((ExpectedConditionlt;Booleangt;) wd -gt; ((JavascriptExecutor) wd).executeScript("return document.readyState").equals("complete")); }
Ответ №1:
Все проверили другие шаги до того момента, когда я столкнулся с проблемой, чтобы увидеть, был ли #документ загружен во время выполнения, но это было не так, и он все еще мог выполнять эти действия.
Следовательно, я проверил свой полный код, и в промежутке я выполнял обновление страницы, поэтому объекты страницы были потеряны во время выполнения, потому что у меня есть фабрика элементов страниц.
Теперь удалено обновление страницы между ними и продолжено в том же сеансе — Хотя #документ не загружен, выполняются необходимые действия из selenium webdriver.