为什么我的测试抛出异常 - 无法在 webdriver 中定位元素?

package testproject;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.*;
  public class mytestclass {
    public static void main(String[] args) {
       WebDriver Driver = new FirefoxDriver();
        Driver.get("https://www.gmail.com/");
         WebElement wb= Driver.findElement(By.name("Email"));
         wb.sendKeys("sweta");
         WebElement wb1= Driver.findElement(By.name("Passwd"));
         wb1.sendKeys("123456");
         WebElement wb2= Driver.findElement(By.id("signIn"));
         wb2.click();
         WebElement wb3= Driver.findElement(By.xpath(".//*[@id='gb']/div[1]/div[1]/div[2]/div[5]/div[1]/a"));
         wb3.click();
         WebElement wb4= Driver.findElement(By.id("gb_71"));
         wb4.click();
   }
}

当我执行此代码时,一切都很好,直到我希望单击登录按钮.我得到了例外,它说线程main" org.openqa.selenium.NoSuchElementException 中的异常:无法定位元素:{method":xpath",selector":.//*[@id='gb']/div[1]/div[1]/div[2]/div[5]/div[1]/a"} 但是当我尝试使用 fierbug 定位它时,它工作正常.在上述代码中,我更改了电子邮件 ID 和密码以确保电子邮件安全.

When i am executing this code everything is going fine till the point where i want the sign in button to be clicked. I am getting exception which says that Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":".//*[@id='gb']/div[1]/div[1]/div[2]/div[5]/div[1]/a"} but when i am trying to locate it using fierbug its working fine. In the above mentioned code i changed the email id and password to keep the email safe.

我已经在 stakwave 上发布了另一个程序的问题,所以如果你可以的话,请看看这个链接 -webdriver 无法点击 firefox 中的超链接

I was facing problem with one more program which i already posted on stakwave so if u can then please have a look at this link-webdriver is not able to click on a hyperlink in firefox

推荐答案

我遇到了类似的问题,设置超时后问题解决.

I faced similar problem, issue resolved after setting timeout.

Webdriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);

不知道超时在这里的作用是什么.

Not sure whats the role of timeout here though.

相关文章