0
JavaScriptを初めて使い、Googleホームページを読み込んで次の簡単なテストを実行してタイトルを取得する方法を理解しようとしています。このタイトルはテストされます。GoogleのPuppeteerとMochaの非同期呼び出し
const puppeteer = require("puppeteer");
var page_title = "blank";
assert = require("assert");
async function run() {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto("http://www.google.co.uk");
page_title = await page.title();
console.log("Page Title: ", page_title)
await browser.close();
}
run();
describe("Google", function() {
it("Title contains Google", async function() {
assert.equal(page_title, "Google");
});
});
問題は、page_titleが取得される前に実行されるdescribe/itブロックです。私は実際にどのようにこれを構造化すべきかアドバイスしてくれますか?
スイートの前または各テストの前に何かを実行したい場合は、事前フックを使用できます。 [mochaのドキュメントを参照](https://mochajs.org/#hooks)。これらのフックは、あなたのスイート/テストの前または後にモカによって何かが実行されることを保証します。その次に、あなたの 'run()'の結果に ''待ってはいけません/ ''使用しないでください。これはあなたの問題の原因かもしれません。 – Rhayene
ありがとう!前のフックに追加: – ZippityUK
( "Google"、function(){ before(async function(){ this.timeout(10000); const browser = puppeteer.launch({headless:true}); const page = browser.newPage(); await page.goto( "http://www.google.co.uk"); page_title =待ち受けpage.title(); //console.log( "ページタイトル:」、PAGE_TITLE) )(browser.closeを待つ; }); それ( "タイトルのGoogle"、関数(){ assert.equal(PAGE_TITLE、 "グーグル")が含まれ; を}); }); – ZippityUK