首先,我对 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/