Selenium webdriver 获取TestNG中的ElementNotFound异常

Selenium webdriver 获取TestNG中的ElementNotFound异常,selenium-webdriver,testng,Selenium Webdriver,Testng,以下代码用于登录,然后单击CreateQuest链接。它不点击链接,并给出ElementNotFound异常并跳过测试。它只是登录和注销。请帮忙 public class Edit_Question { WebDriver driver = new FirefoxDriver();@ BeforeTest public void load() { driver.get("Page url"); } @ Test public void

以下代码用于登录,然后单击CreateQuest链接。它不点击链接,并给出ElementNotFound异常并跳过测试。它只是登录和注销。请帮忙

public class Edit_Question {

    WebDriver driver = new FirefoxDriver();@
    BeforeTest
    public void load() {
    driver.get("Page url");
    }

    @  Test
    public void login() throws InterruptedException {
    driver.findElement(By.id("userid")).sendKeys("4060@jhg.com");
    driver.findElement(By.id("password")).sendKeys("mpcyn2");
    driver.findElement(By.id("emLoginLink")).click();
    Thread.sleep(10000);
    }@  Test
    public void ques() throws InterruptedException {
    //select create questions
    driver.findElement(By.xpath("//xpath link")).click(); //throws        ElementNotFound exception
    Thread.sleep(5000);
    }@  Test
    public void logout() {
    //logout
    driver.findElement(By.partialLinkText("SeeharackTest1, SherrodUATT")).click();
    driver.findElement(By.id("logoutLink")).click();
    }

    @   AfterSuite
    public void close() {
    driver.close();
    }
}

执行的顺序不明确。您需要使用dependenmethods在此处进行gaurantee订购。因此,ques应取决于登录,而注销应取决于ques以确定执行顺序

其他意见: 1.尝试使用@BeforeClass而不是@BeforeTest,使用@AfterClass而不是@AfterSuite 2.尽可能避免使用睡眠。而是等待特定的元素。 3.整个流程不应该是一个测试用例吗


希望有帮助。

您的测试网页的HTML是什么?XPATH链接是否到达所需的DOM节点?我已尝试实现您的建议。但我还是犯了同样的错误。几天前我更改了ANT build.xml的类路径。这个错误可能是因为这个原因吗?没有变化的类路径不应该与此相关。你能粘贴你的更新代码吗。