Я использую AJAX приложение и на нем есть некоторые фреймы, и я хочу переключиться на него, поэтому я использовал frameToBeAvailableAndSwitchToIt()
метод.
Предположим, теперь я нахожусь в контексте страницы по умолчанию (т.е. не в любом из фреймов) и хочу переключиться на testFrame
, используя следующий код -
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(testFrame));
JavascriptExecutor jsExecutor = (JavascriptExecutor)driver;
String currentFrameName = (String) jsExecutor.executeScript("return self.name");
System.out.println("***************** Current frame using self.name " + currentFrameName);
Возвращается пустое строка как значение currentFrameName
, которое указывает на то, что мы не переключились на testFrame
, даже если явный вызов ожидания завершился успешно.
Эта проблема периодически воспроизводится, что приводит к сбою тестов. Не могли бы вы предложить, как сделать это стабильным?
РЕДАКТИРОВАТЬ
Я отредактировал мой вопрос, где ранее я упоминал - я нахожусь в frameA
, а затем хочу переключитесь на frameB
, но это не так. Я хочу переключиться с содержимого страницы по умолчанию на фрейм. Извините за неправильную информацию.