线程“主”中的异常org.openqa.selenium.NoSuchElementException:无法找到元素:// input [@ name ='firstName']

时间:2018-12-10 06:28:42

标签: java selenium selenium-webdriver

WebDriver driver=new FirefoxDriver(); 
Thread.sleep(3000); 
driver.get("https://www.google.com/gmail/about/"); 
driver.manage().timeouts().pageLoadTimeout(40,TimeUnit.SECONDS);     
//Clicking on Create account link
driver.findElement(By.xpath("//a[@href='https://accounts.google.com/SignUp?service=mail&continue=http%3A%2F%2Fmail.google.com%2Fmail%2F%3Fpc%3Dcarousel-about-en']")).click(); 
driver.manage().timeouts().pageLoadTimeout(40,TimeUnit.SECONDS); 
Assert.assertTrue(driver.findElement(By.xpath("//input[@name='firstName']")).isDisplayed()); 
  

线程“主要” org.openqa.selenium.NoSuchElementException中的异常:   无法找到元素:// input [@ name ='firstName']

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

看来您的 xpath 可能是错误的。代替:

//input[@name='firstName'] 

尝试使用:

//*[@id='firstName'] 

作为 xpath

  • 您可以在Chrome上找到 xpath ,方法是:检查元素,右键单击元素,然后从“复制”子菜单中选择Copy XPath选项。

答案 1 :(得分:0)

这是时间问题,表格需要一两秒钟才能加载。您可以添加显式等待来等待

WebDriverWait wait = new WebDriverWait(WebDriverRefrence, 10);
WebElement firstName = wait.until(ExpectedConditions.presenceOfElementLocated(By.name("firstName")));
Assert.assertTrue(firstName.isDisplayed());