获得异常:无法找到元素

时间:2014-11-19 12:15:48

标签: java selenium selenium-webdriver

我正在尝试编写一个脚本来自动登录和注销网站www.flipkart.com。但我的脚本失败并给出异常:  Unable to locate element: {"method":"link text","selector":"Logout"} 我无法弄清问题是什么。任何人都可以告诉我的定位器有什么问题。 以下是我的代码:

Actions builder = new Actions(driver);
System.out.print("log1");
WebElement element = driver.findElement(By.xpath(".//*[@id='fk-mainhead-id']/div[1]/div/div[2]/div[1]/ul/li[6]/a"));
System.out.print("log2");
Action action = builder.moveToElement(element).build();
action.perform();
System.out.print("log3");
driver.manage().timeouts().implicitlyWait(5,TimeUnit.SECONDS); 
 driver.findElement(By.linkText("Logout")).click();
}

1 个答案:

答案 0 :(得分:1)

你很幸运..最近,我曾帮助一个人登录和退出flipkart。这是剧本:

@Config(url="http://flipkart.com", browser=Browser.FIREFOX)
public class TestFlipKart extends Conductor {
    @Test
    public void testLoginLogout() {
        String username = "<username>";
        String password = "<password>";

        click(By.cssSelector("a[href*='/login']"))
        .setText(By.cssSelector("input[name='email']"), username)
        .setText(By.cssSelector("input[name='password']"), password)
        .click(By.cssSelector("input[type='submit'][value='Login']"))

        .validatePresent(By.cssSelector("li.greeting-link > a"))

        .hoverOver(By.cssSelector("li.greeting-link > a"))

        .click(By.cssSelector("ul.account-dropdown a[href*='/logout']"))

        // should be logged out now.
        .validatePresent(By.cssSelector("a[href*='/login']"));
    }
}

请注意,这是使用Conductor框架。您可以将我在那里的CSS选择器翻译成您的脚本。