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");