-3

So I made a short bit of selenium code, it isn't letting me select elements though! I do not understand. I try copy and pasting examples and none work because of this.

It says: NoSuchElementException: Unable to locate element #login\-input

Here is my java code:

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" ) );
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
FX_NINJA
  • 103
  • 5
  • Possible duplicate of [Find elements inside forms and iframe using Java and Selenium WebDriver](https://stackoverflow.com/questions/24247490/find-elements-inside-forms-and-iframe-using-java-and-selenium-webdriver) – JeffC Nov 24 '18 at 02:48

2 Answers2

1

Your login form is inside the iframe. Switch your driver first, try the bellow code :

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");
frianH
  • 7,295
  • 6
  • 20
  • 45
1

The username and password fields are within an iframe, so you have to:

  • Induce WebDriverWait for the desired frame to be available and switch to it.
  • Induce WebDriverWait for the desired element to be clickable.
  • You can use the following solution:

    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");
    
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352