Не удается найти контекст с указанным идентификатором в Java - Selenium webdriver - PullRequest
0 голосов
/ 04 мая 2018

Я хочу щелкнуть элемент внутри iframe

код пробной версии:

driver.switchTo().frame("payment_page");
WebElement cardType = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"AMEX-paymenttype\"]")));
cardType.click();

Сообщение об ошибке: org.openqa.selenium.support.ui.ExpectedConditions findElement ПРЕДУПРЕЖДЕНИЕ: WebDriverException выбрасывается findElement (By.xpath: // * [@ id = "AMEX-paymenttype"])

1 Ответ

0 голосов
/ 04 мая 2018

В соответствии с Best Practices , прежде чем переключаться на любой фрейм , вам нужно заставить WebDriverWait для фрейма быть доступным и переключиться на это. После того, как вы переключились на требуемый кадр далее, когда вы вызываете метод click(), вместо использования ExpectedConditions метод visibilityOfElementLocated вам необходимо использовать elementToBeClickable следующим образом:

new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id("payment_page")));
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id=\"AMEX-paymenttype\"]"))).click();
...