Selenium не может нажать кнопку div внутри iframe Google PayJAVA

Программисты JAVA общаются здесь
Anonymous
Selenium не может нажать кнопку div внутри iframe Google Pay

Сообщение Anonymous »

В настоящее время я работаю над автоматизацией тестирования интеграции Google Pay и столкнулся с проблемой расположения элементов.
Поток платежей Google открывается в отдельном окне, с которым мне удалось найти правильный дескриптор в сеансе.

Код: Выделить всё

driver.switchTo().window(googlePayWindowHandle);
после того, как меня перевели на страницу, где нужно нажать на кнопку «Продолжить» и с этим есть несколько хитростей:
  • это в iframe, и мне удалось его переместить в нужный фрейм

Код: Выделить всё

WebElement iframe = checkPresenceOfElementWithWait(driver, By.name("sM432dIframe"), WAIT_DURATION);
WebDriver frameDriver = driver.switchTo().frame(iframe);
  • Кнопка, которую мне нужно нажать, представляет собой элемент div с ролью="buttone".
    Как и в других статьях, я пытался найти элемент кнопки с помощью ожидания чтобы он был кликабельным

Код: Выделить всё

WebDriverWait frameWait = new WebDriverWait(frameDriver, WAIT_DURATION);
WebElement element = frameWait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@role='button']")));
Но всегда происходит ошибка

Код: Выделить всё

TimeoutException: Expected condition failed: waiting for element to be clickable: By.xpath: //div[@role='buttone']
также я попробовал другие подходы, например использование waitForElementPresence, и кажется, что селен не может найти элемент внутри iframe. Чтобы убедиться, что эта кнопка находится внутри рамки, я вошел в консоль Chrome и выполнил поиск по xPath, и это сработало.
P.S.:
также попробовал исполнитель javascript, но все равно безуспешно.

Подробнее здесь: https://stackoverflow.com/questions/768 ... pay-iframe

Вернуться в «JAVA»