Разобрать тело html файла используя jsdom - PullRequest
0 голосов
/ 04 сентября 2018

Во-первых, я новичок в пользовательском интерфейсе, поэтому имейте это в виду, прежде чем предлагать решение. У меня есть URL-адрес, который я передаю в 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>

Я хочу, что внутри тела. Как мне это сделать?

1 Ответ

0 голосов
/ 05 сентября 2018

API new JSDOM('<put html code at here>', options) требует, чтобы вы передали заранее известный HTML-код, если вы хотите, чтобы jsom извлекал HTML-код по заданному URL, вы не можете использовать этот 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())
        });

    });
});
...