Node.js 如何使用量角器验证HTML属性是否包含绝对URL或相对URL?
我正在使用量角器测试web应用程序,我注意到每当我尝试读取Node.js 如何使用量角器验证HTML属性是否包含绝对URL或相对URL?,node.js,protractor,Node.js,Protractor,我正在使用量角器测试web应用程序,我注意到每当我尝试读取hrefattibute时,量角器都会将该值视为绝对URL。这使我无法验证应用程序呈现的URL是否确实是绝对的 假设我想要一个绝对URL,包括我的元标记中的域: <link rel="next" href="https://www.example.com/path-to-page"> 产量https://www.example.com/path-to-page而不是/path to page,这是使用浏览器或curl查看页面
href
attibute时,量角器都会将该值视为绝对URL。这使我无法验证应用程序呈现的URL是否确实是绝对的
假设我想要一个绝对URL,包括我的元标记中的域:
<link rel="next" href="https://www.example.com/path-to-page">
产量<代码>https://www.example.com/path-to-page而不是/path to page
,这是使用浏览器或curl
查看页面源代码时的实际值
我觉得这种方法过于热心。它可以隐藏实际的bug。这是一个bug还是一个特性?获取属性中存在的实际路径的最佳方法是什么
我已经找到了,但它以一条评论结束,这条评论建议记者在堆栈溢出问题上寻求帮助
请记住,我不只是想检查URL的路径部分。我想确认该属性确实包含所有内容。协议、域和路径。如果我的后端以不同的方式呈现它,量角器仍然会假装它是正确的,因为它根据页面的上下文计算出域。使用
浏览器.executeScript()代码>使用Javascript将提供实际的href,而不是量角器(恼人地)解析的完整链接。
例如:
let elem = element(by.css('link[rel="next"]'));
let url = await browser.executeScript('return arguments[0].getAttribute("href");',elem);
element(by.css('link[rel="next"]')).getAttribute('href')
let elem = element(by.css('link[rel="next"]'));
let url = await browser.executeScript('return arguments[0].getAttribute("href");',elem);