NoSuchElementException | Flipkart / Paytm |登陆注册

时间:2016-03-16 06:52:34

标签: java selenium selenium-webdriver

我只是编写一个脚本来点击Flipkart / Paytm上的登录/注册链接,但每次我运行脚本时我都没有得到这样的元素异常。

请仔细查看脚本并帮助我。

公共课试试{

WebDriver driver = null;

@Before
public void setUp() throws Exception {
    String basePath = System.getProperty("user.dir");
    //System.out.println(basePath);
    String finalPath = basePath + "\\IEDriver\\IEDriverServer.exe";
    //System.out.println(finalPath);

    System.setProperty("webdriver.ie.driver", finalPath);
    driver = new InternetExplorerDriver();
    driver.get("http://flipkart.com");
}

@After
public void tearDown() throws Exception {
    driver.close();
}

@Test
public void test() throws InterruptedException {
    driver.manage().window().maximize();
    driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
    System.out.println("a");
    //Thread.sleep(5000);
    driver.findElement(By.xpath("//*[@id='container']/div/div/header/div[2]/div/div[1]/ul/li[7]/a")).click();
    //driver.findElement(By.partialLinkText("Log in")).click();
    System.out.println("hie");
}

}

2 个答案:

答案 0 :(得分:1)

使用链接文本时,您需要非常具体地说明套管。我可以看到链接文本是“登录”,带有大写字母I.

使用此:

driver.findElement(By.partialLinkText("Log In")).click();

适用于所有浏览器。

答案 1 :(得分:0)

在Python中,我已成功在Flipkart网站上执行此操作: login_link = driver.find_element_by_link_text('Log In') login_link.click()

另一种解决方案:

如果您没有测试登录按钮本身,您也可以直接导航到/account/login页面,以防Flipkart(未验证PayTM)。路径名称似乎是静态的,您不必担心在主页上获取登录按钮的确切定位器。

例如:driver.get('https://www.flipkart.com/account/login')