Casper JS 不会使用 id 等待选择器

Casper JS won't waitForSelector using id

我正在编写我的第一个 casperjs 测试,我 运行 遇到了一个问题。我需要等待一个元素出现在我的 DOM 中。使用冗长的选择器效果很好,但无法通过它的 id 找到它。

有了这个HTML:

  <ul class="nav navbar-nav">
      <li data-ng-if="!connectedUser &amp;&amp; currentRoom" data-ng-class="$route.current.activetab == 'login' ? 'active' : ''">
          <a href="/login" data-translate="NAV.ITEM_SIGN_IN" id="toto"></a>
      </li>
      ...
  </ul>

还有这个JavaScript:

casper.waitForSelector(".nav > li > a:first-child", function () {
        test.comment(".nav > li > a:first-child OK !");
        casper.capture(config.screensFolder + "verbose_selector.png");
    }, null, 15000)

    .waitForSelector("#toto", function () {
        test.comment("#toto OK !");
        casper.capture(config.screensFolder + "id_selector.png");
    }, null, 15000)

    .run(function () {
        test.done();
    });

我得到这个输出:

Verbose OK !

FAIL "#toto" still did not exist in 15000ms type: uncaughtError file: test/login3.js error: "#toto" still did not exist in 15000ms

所以在尝试了几个小时之后!我终于意识到你需要像这样 button#toto.

把元素类型放在 id 之前