0

frisby.js と javascript を使用していくつかの API テストを自動化する必要がありますが、HTML 応答の一部のデータにアクセスするのに問題があります。おそらく、応答が JSON 形式ではないためです。

以下は私のコードです

var frisby = require('frisby');
frisby.create('Get some information')
    .get(someUrl)
    .after(function (err, res, body) {
        console.log(body);
    })
    .toss()

以下はconsole.log(body);関数の結果です

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
  <title>MDpay default response template for web</title>
</head>
<body OnLoad="OnLoadEvent();" >
<form name="downloadForm"
      action="https://someurl"
      method="POST">
  <input type="hidden"
         name="PaReq"
         value="eJxVUdtuwjAM/ZWKDyBJCWuLjCUuk8YDE2JMYk8opN6ogBTSdIK/X1LK2PISn5PYxz6G1c4STd9I15YQ5lRV6ouiIh92krgnZQdhMVrSGeGbbFWUBkWXd2Ngd+hTrN4p4xCUPo9nrygznkgOrIVwJDubIudc8HCA3Qgw6kg42m+V2W960828zOmwWVHlgDVPoMvaOHvFJPN6dwC1PeDOudOAMWABAHu0sKhDVPnkS5HjgtPc6Zyvx5PLm5YFlcXabd8/1TMfAgs/IFeOMOYi8d09RaI/4PFAJsAaHtQxqOJq+RH1eTf03jJwCkKjG+g3U/1lwLtpyegrZjLzvd8R0OVUGvI//ES/MeRUaYy8aLiBPYaYvARXtfN2xWkvTkUabG1wKFV4P0QqbrUCABYyWLsx1m7TR/+2/APkDqQg">
  <input type="hidden"
         name="TermUrl" value="https:someurl">
  <input type="hidden"
         name="MD"
         value="402277:56F8FBC5FC36742423302C8EFF56C796E7B123FC61132EA2AD89A389A02C4093:4243:##100100000">
  <!-- To support javascript unaware/disabled browsers -->
  <div style="text-align: center;">
    <img src="templates/preloader.gif"/><br/>
    <noscript>
      <center>Please click the submit button below.<br>
        <input type="submit" name="submit" value="Submit"></center>
    </noscript>
  </div>
</form>

<SCRIPT LANGUAGE="Javascript" >
  function OnLoadEvent() {
    document.downloadForm.submit();
  }
</SCRIPT>
</body>
</html>

私の質問は、valuePaReqTermUrlおよびMDHTML タグに到達する方法を知っていますか。

ありがとう

4

2 に答える 2

0

「偽の」DOM 要素を作成し、それを innerHTML に設定すると、通常の Web ページのようにクエリを実行できます。

var el = document.createElement('html');
el.innerHTML = '<input name="PaReq" value="foo">';

el.querySelector('input[name=PaReq]').value; // "foo"

node.js 環境でテストを実行している場合は、たとえば以下も使用する必要があります。たとえば、https://github.com/tmpvar/jsdom#passing-objects-to-scripts-inside-the-pagejsdomを参照してください

于 2017-01-09T08:13:26.103 に答える