Java Selenium WebDriver Can't find form field

2019-05-19 14:48发布

问题:

I'm testing a registration page and I've tried name, xpath, id, class and nothing seems to work.

here is my selenium code

  driver.findElement(By.id("pushMenu")).click();
    Thread.sleep(2000);
    driver.findElement(By.linkText("Register")).click();
    Thread.sleep(2000);
    WebElement l = driver.findElement(By.name("name"));

and here is the form tag I'm trying to access

<input type="text" name="name" placeholder="">

explicit wait attempt code:

 WebDriverWait wait = new WebDriverWait(driver, 10);
    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.name("name")));
    driver.findElement(By.name("name")).sendKeys("Testing100");

回答1:

in HTML u shared there is no name tag. so try by.linktext("Manager")



回答2:

Please check the time specified in the wait is sufficient for the element to load completely.
OR
Use different locators like cssSelector if name, id(if present) is not working.

CssSelector example
driver.findElement(By.cssSelector(input[name='name']));


回答3:

For accessing the form field, use

driver.findElement(By.xpath("//input[@name='name']"));



回答4:

If you are still facing the issue of accessing the element after implicit/explicit wait, then try putting a screenshot before you access the element and see if the element is present on the page or not.