Selenium отображает NoSuchElementException, несмотря на наличие элемента

Итак, я сделал небольшой кусочек кода селена, но он не позволяет мне выбирать элементы! Я не понимаю. Я стараюсь копировать и вставлять примеры, и ни одна из них не работает из-за этого.

Это говорит: NoSuchElementException: Unable to locate element #login\-input

Вот мой код Java:

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait( 10, TimeUnit.SECONDS );
driver.get( "https://www.ticketmaster.com/review" );
WebElement inputElement = driver.findElement( By.id( "login-input" ) );

2 ответа

Ваша форма входа находится внутри iframe, Сначала переключите драйвер, попробуйте следующий код:

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait( 10, TimeUnit.SECONDS );
driver.get( "https://www.ticketmaster.com/review" );

driver.switchTo().frame("loginFrame");
WebElement inputElement = driver.findElement( By.id( "login-input" ) );
inputElement.sendKeys("test");

Поля имени пользователя и пароля находятся в пределах iframeтак что вы должны:

  • Вызовите WebDriverWait, чтобы нужный кадр был доступен, и переключитесь на него.
  • Вызовите WebDriverWait для того, чтобы нужный элемент был активным.
  • Вы можете использовать следующее решение:

    WebDriver driver = new FirefoxDriver();
    driver.get( "https://www.ticketmaster.com/review" );
    new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("iframe#loginFrame")));
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("label[for='login-input']"))).sendKeys("FX_NINJA");
    
Другие вопросы по тегам