Phantomjs CasperJS:当连续两次调用fetchText时,第二次调用不会';行不通

Phantomjs CasperJS:当连续两次调用fetchText时,第二次调用不会';行不通,phantomjs,casperjs,Phantomjs,Casperjs,CasperJS版本1.1.0-beta3 casper.start(someLink); function getUrl(link) { casper.thenOpen(basePath + link); casper.then(function() { var par1 = this.fetchText('body > table > tbody > tr > td > div > table > tbody &g

CasperJS版本1.1.0-beta3

casper.start(someLink);

function getUrl(link) {
    casper.thenOpen(basePath + link);
    casper.then(function() {

        var par1 = this.fetchText('body > table > tbody > tr > td > div > table > tbody > tr:nth-child(2) > td > table > tbody > tr > td:nth-child(2) > table > tbody > tr:nth-child(3) > td > table > tbody > tr:nth-child(4) > td:nth-child(2) > table > tbody > tr:nth-child(1) > td:nth-child(2) > strong > span')   
        this.echo(par1);
        var par2 = this.fetchText('body > table > tbody > tr > td > div > table > tbody > tr:nth-child(2) > td > table > tbody > tr > td:nth-child(2) > table > tbody > tr:nth-child(3) > td > table > tbody > tr:nth-child(4) > td:nth-child(2) > table > tbody > tr:nth-child(1) > td:nth-child(3) > strong > span')   
        this.echo(par2);

    });
}

getUrl(someRelativeUrl);

casper.run(function() {
  this.echo('DONE!');
});
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><div align="center">
      <table width="1000" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td><table width="1000" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td width="217" valign="top" bgcolor="#E3E5E4"><table width="100%" border="0" cellspacing="0" cellpadding="0">
              </table></td>
              <td width="783" align="left" valign="top" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="right" bgcolor="#D4D6D5"><img src="top.jpg" width="180" height="179" /></td>
                </tr>
                <tr>
                  <td bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="3%">&nbsp;</td>
                      <td width="97%">&nbsp;</td>
                    </tr>

                 <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                 </tr>

                 <tr>
                      <td>&nbsp;</td>
                      <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                          <td width="2%">&nbsp;</td>
                          <td width="49%"align="left" class="style10">POLE1: <strong><span class="style7">ADR1 </span></strong></td>
                          <td width="49%"align="left" class="style10">POLE2: <strong><span class="style7">ADR2 </span></strong></td>
                        </tr>
                        <tr>


                      </table></td>
                 </tr>

                              <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                  </table></td>
                </tr>
              </table></td>
            </tr>
          </table></td>
        </tr>
        <tr>
          <td bgcolor="#170E13">&nbsp;</td>
        </tr>
      </table>
    </div></td>
  </tr>
</table>

</body>
</html>
问题:par1显示正确的值,par2为空。 我更改了它们的顺序,将par2放在par1之前:在本例中,par2显示为right,par1为空

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><div align="center">
      <table width="1000" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td><table width="1000" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td width="217" valign="top" bgcolor="#E3E5E4"><table width="100%" border="0" cellspacing="0" cellpadding="0">
              </table></td>
              <td width="783" align="left" valign="top" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="right" bgcolor="#D4D6D5"><img src="top.jpg" width="180" height="179" /></td>
                </tr>
                <tr>
                  <td bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="3%">&nbsp;</td>
                      <td width="97%">&nbsp;</td>
                    </tr>

                 <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                 </tr>

                 <tr>
                      <td>&nbsp;</td>
                      <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                          <td width="2%">&nbsp;</td>
                          <td width="49%"align="left" class="style10">POLE1: <strong><span class="style7">ADR1 </span></strong></td>
                          <td width="49%"align="left" class="style10">POLE2: <strong><span class="style7">ADR2 </span></strong></td>
                        </tr>
                        <tr>


                      </table></td>
                 </tr>

                              <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                  </table></td>
                </tr>
              </table></td>
            </tr>
          </table></td>
        </tr>
        <tr>
          <td bgcolor="#170E13">&nbsp;</td>
        </tr>
      </table>
    </div></td>
  </tr>
</table>

</body>
</html>
我做错了什么?显然,fetchText行是正确的,CSS也是正确的,但是只有第一行是正确的,下一行都是空的

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><div align="center">
      <table width="1000" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td><table width="1000" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td width="217" valign="top" bgcolor="#E3E5E4"><table width="100%" border="0" cellspacing="0" cellpadding="0">
              </table></td>
              <td width="783" align="left" valign="top" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="right" bgcolor="#D4D6D5"><img src="top.jpg" width="180" height="179" /></td>
                </tr>
                <tr>
                  <td bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="3%">&nbsp;</td>
                      <td width="97%">&nbsp;</td>
                    </tr>

                 <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                 </tr>

                 <tr>
                      <td>&nbsp;</td>
                      <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                          <td width="2%">&nbsp;</td>
                          <td width="49%"align="left" class="style10">POLE1: <strong><span class="style7">ADR1 </span></strong></td>
                          <td width="49%"align="left" class="style10">POLE2: <strong><span class="style7">ADR2 </span></strong></td>
                        </tr>
                        <tr>


                      </table></td>
                 </tr>

                              <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                  </table></td>
                </tr>
              </table></td>
            </tr>
          </table></td>
        </tr>
        <tr>
          <td bgcolor="#170E13">&nbsp;</td>
        </tr>
      </table>
    </div></td>
  </tr>
</table>

</body>
</html>
编辑:下面是给出问题的实际html(stackoverflow以某种方式隐藏了代码中的节和DOCTYPE)。就这么简单: 细节

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><div align="center">
      <table width="1000" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td><table width="1000" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td width="217" valign="top" bgcolor="#E3E5E4"><table width="100%" border="0" cellspacing="0" cellpadding="0">
              </table></td>
              <td width="783" align="left" valign="top" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="right" bgcolor="#D4D6D5"><img src="top.jpg" width="180" height="179" /></td>
                </tr>
                <tr>
                  <td bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="3%">&nbsp;</td>
                      <td width="97%">&nbsp;</td>
                    </tr>

                 <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                 </tr>

                 <tr>
                      <td>&nbsp;</td>
                      <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                          <td width="2%">&nbsp;</td>
                          <td width="49%"align="left" class="style10">POLE1: <strong><span class="style7">ADR1 </span></strong></td>
                          <td width="49%"align="left" class="style10">POLE2: <strong><span class="style7">ADR2 </span></strong></td>
                        </tr>
                        <tr>


                      </table></td>
                 </tr>

                              <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                  </table></td>
                </tr>
              </table></td>
            </tr>
          </table></td>
        </tr>
        <tr>
          <td bgcolor="#170E13">&nbsp;</td>
        </tr>
      </table>
    </div></td>
  </tr>
</table>

</body>
</html>

POLE1:ADR1
POLE2:ADR2

谢谢

如果添加
,它是否会更改fetchText
后的code>?不,不工作。这可能是由于长css选择器导致的繁重计算造成的延迟吗?我完全迷路了,几个小时后,我遇到了这样的问题,编程不再合乎逻辑:(不,不可能,因为
fetchText
是完全同步的。可能是
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><div align="center">
      <table width="1000" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td><table width="1000" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td width="217" valign="top" bgcolor="#E3E5E4"><table width="100%" border="0" cellspacing="0" cellpadding="0">
              </table></td>
              <td width="783" align="left" valign="top" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="right" bgcolor="#D4D6D5"><img src="top.jpg" width="180" height="179" /></td>
                </tr>
                <tr>
                  <td bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="3%">&nbsp;</td>
                      <td width="97%">&nbsp;</td>
                    </tr>

                 <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                 </tr>

                 <tr>
                      <td>&nbsp;</td>
                      <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                          <td width="2%">&nbsp;</td>
                          <td width="49%"align="left" class="style10">POLE1: <strong><span class="style7">ADR1 </span></strong></td>
                          <td width="49%"align="left" class="style10">POLE2: <strong><span class="style7">ADR2 </span></strong></td>
                        </tr>
                        <tr>


                      </table></td>
                 </tr>

                              <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                  </table></td>
                </tr>
              </table></td>
            </tr>
          </table></td>
        </tr>
        <tr>
          <td bgcolor="#170E13">&nbsp;</td>
        </tr>
      </table>
    </div></td>
  </tr>
</table>

</body>
</html>