node.js - 使用jsdom解析html文件体

标签 node.js protractor jsdom

首先,我对 UI 很陌生,所以在给出解决方案之前请记住这一点。 我有一个 url,在 Protractor 规范文件中传递给 jsdom。它返回必须解析的响应。 Jsdom逻辑:

   describe('angularjs homepage', function () {

        it('open nho website', function () {
         const { JSDOM } = require("jsdom");
         window = (new JSDOM(``, { runScripts: 'dangerously', url: 'https://example.com/getSeleniumGrid.jsp?locale=US&browser=Firefox&fabric=corp&teamName=xyzTeam' })).window;
//Used so many permutations n combinations on windows object
         const machinename=window.text();
         console.log("hi:"+machinename);

        });
    });

我的 html 响应

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>


    </head>
    <body>
        example.com

    </body>
</html>

我想要体内的东西。我该怎么做?

最佳答案

API new JSDOM('<put html code at here>', options)要求你传入预先知道的HTML代码,如果你想让jsom从给定的url获取HTML代码,你不能使用这个API,而是使用JSDOM.fromURL(url, options)

describe('angularjs homepage', function () {

    it('open nho website', function () {

        var jsdom = require("jsdom");

        var url = 'https://example.com/getSeleniumGrid.jsp?locale=US&browser=Firefox&fabric=corp&teamName=xyzTeam';

        // if your network access behind proxy, 
        // please create a resourceLoader, and
        // specify the resources in below options and pass the options
        // into JSDOM.fromURL(url, options)

        var resourceLoader = new jsdom.ResourceLoader({
            proxy: "<your proxy address>", 
            strictSSL: false,
        });

        var options = { 
            resources: resourceLoader,
        };

        jsdom.JSDOM.fromURL(url, options) 

        .then(function(dom){
            console.log(dom.window.document.querySelector('body').textContent.trim())
        });

    });
});

关于node.js - 使用jsdom解析html文件体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52168677/

相关文章:

mysql - Knex NodeJS 如何选择每行具有最大日期的行

javascript - Protractor 中的 Element.getText()

javascript - 使用 ang js 应用程序的 selenium Protractor 单击类中的特定 ng-click

javascript - 在 Protractor 中测试 promise

javascript - NodeJS 内存泄漏

node.js - 使用cheerio从没有类的段落标签(<p>)中选择文本

javascript - 如何禁用 winston elasticstack 客户端和传输生成的调试控制台输出?

node.js - 现在通过 brew 使用 npm 安装 Node 的方式是什么

node.js - npm install <module> 持续错误? ( Node gyp 构建?)

javascript - 如何设置 typeorm .env 文件?