ページ上のハイパーリンクの数を数え、それらが動作するかどうかをテストしようとしています。私はすべてのリンクを数え、その数をJavaScriptに表示する能力を持っていますが、私はコマンドラインで分度器にその値を返すように見えません。回答に基づいて分度器:すべてのハイパーリンクを数えてページ上でテストする
アップデートコード:
browser.waitForAngularEnabled(false);
describe('Clicks on the correct Drupal hyperlink', function() {
it('should find all links', function() {
browser.get('file:///C:/Users/Dasman/Documents/PROTRACTOR_E2E_TESTING/TestSite.html');
let allLinks = element.all(by.tagName('a'));
allLinks.count().then(function(link_tally){
console.log('There are a total of ' + link_tally + " links on this page with proper tags.")
})
browser.sleep(2000);
// A Protracterized httpGet() promise
function httpGet(siteUrl) {
var http = require('http');
var defer = protractor.promise.defer();
http.get(siteUrl, function(response) {
var bodyString = '';
response.setEncoding('utf8');
response.on("data", function(chunk) {
bodyString += chunk;
});
response.on('end', function() {
defer.fulfill({
statusCode: response.statusCode,
bodyString: bodyString
});
});
}).on('error', function(e) {
defer.reject("Got http.get error: " + e.message);
});
return defer.promise;
}
it('should return 200 and contain proper body', function() {
httpGet(allLinks).then(function(result) {
allLinks.count().then(function(statusCode){
console.log('Status code is: ' + statusCode)
})
expect(result.statusCode).toBe(200);
expect(result.bodyString).toContain('Apache');
});
});
});
});
また私は、彼らが開くかどうかを確認するためのリンクを「チェック」します。 URLにアクセスしてすべてのリンクをクリックして別のウィンドウで開く方法はありますか?リンクが機能しているか、有効なURLを持っている場合は属性を取得しますか?
私は元々idをクリックしてリンクをクリックし、テストが実行されたときに視覚的に確認しました。しかし平均的なページに15〜20のリンクがあります - 私はもっと自動化された方法が必要です。
エルンストの答えは、ソリューションに私を指摘したが、それはいくつかのコードの再構築およびカプセル化を必要としました:https://github.com/SDasman/Angular_Protractor_End2End_Tests/tree/master/LinkCheck
私は新しいタブでリンクを開くことについてはよく分からないが、なぜあなただけではありません'element.all(by.css( 'a'))。count()'を使ってページ上のリンク数を取得しますか?あるいは 'element.all(by.tagName( 'a'))。count()'? – tehbeardedone
@tehbeardedone - テストを実行した後、cmd行にカウントを表示するにはどうすればよいですか? – Dasman
'console.log()' – tehbeardedone