В соответствии с 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();