无法点击href

时间:2016-05-23 08:44:26

标签: selenium nightwatch.js

您好我有以下代码

<!DOCTYPE html>
<html lang="en">
<head>
<body class="skin-blue sidebar-mini">
<div class="wrapper">
<header class="main-header">
<aside class="main-sidebar">
<section class="sidebar" style="height: auto;">
<div class="user-panel"> </div>
<br>
<br>
<br>
<ul class="sidebar-menu">
<li class="treeview">
<a href="../user/account">
<i class="fa fa-edit"></i>
<span>Basic Information</span>
</a>
</li>
<li class="treeview">
<a href="../admin/myproperties">
<i class="fa fa-list"></i>
<span>My Hotel</span>
</a>
</li>
</ul>
</section>
</aside>

我使用的nightwatch代码是这个,错误是它无法找到元素。在其他网站,这将工作正常,但在这里就像它的buggs

 module.exports = {
  tags: [''],
  'extranet' : function (client) {
    client
      .url('www.somesite.com')
      .waitForElementVisible('body', 1000)

      // --Log In Form //
      //.click('a[class="btn btn-block btn-social btn-lg btn-google"]')
      .setValue('input[name=email]', 'email@email.com')
      .setValue('input[name=password]', 'password')
      .click('button[type="submit"]')

      .click('a[href="../user/account"]')

解: Kishan Patel帮了很多,所以这里是使用Xpath点击这个元素的Nighwatch.js

module.exports = {
  tags: [''],
  'extranet' : function (client) {
    client
      .url('www.somesite.com')
      .waitForElementVisible('body', 1000)
      .setValue('input[name=email]', 'email@email.com')
      .setValue('input[name=password]', 'password')
      .click('button[type="submit"]')
      .waitForElementVisible('section[class="sidebar"]', 10000)
      .useXpath()
      .click('html/body/div[1]/aside/section/ul/li[1]/a')
      .pause(5000)
      .end();

  }
};

2 个答案:

答案 0 :(得分:1)

试试以下代码。 您在点击提交后应用了一些等待,它将得到解决。 我成功地在JAVA中运行了相同的代码。

WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();

driver.get("http://example.com");

//登录用户名

driver.findElement(By.xpath("html/body/div[1]/div/div[2]/form/div[3]/input")).sendKeys("e-mail");

//密码

driver.findElement(By.xpath("html/body/div[1]/div/div[2]/form/div[4]/input")).sendKeys("password");

//点击提交

driver.findElement(By.xpath("html/body/div[1]/div/div[2]/form/div[5]/div/button")).click();

//等待元素可见

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("html/body/div[1]/aside/section/ul/li[1]/a")));

//点击href =“../ user / account”

driver.findElement(By.xpath("html/body/div[1]/aside/section/ul/li[1]/a")).click();

答案 1 :(得分:0)

首先很抱歉使用此部分发表评论,但我没有足够的声誉这样做。 @Kishan Patel:你能看看我的问题吗? Loop is not working properly - nightwatch