0
必要な要素がすべてページに存在するかどうかを確認するテストを作成しようとしています。jsonから動的パスを取得するには?
{
"perfTest": {
"input":"abc",
"outputs":["a","b","c"],
"elemAndXpath": ["Login","password","submit"]
}
}
}
私のテストはこれです:私は、右のNOEは、次のようになりますJSONファイルの名前json.dataを持っているそれらのすべてがで類似している私のロケータを見つけることができるならば今、この作品
it("should check that required elements are present", function() {
var elemNames = data.perfTest.elemAndXpath);
elemNames.forEach(function(elemName){
//search on the page that the specified elem is present
expect(element(by.xpath("//div[.='" + elemName + "']")).isPresent()).toBe(true);
});
});
パス。 jsonファイルから使用するロケータパスを取得できるようにするために、このテストを行う必要があります。 JSONファイルは次のようになります:
{
"perfTest": {
"input":"abc",
"outputs":["a","b","c"],
"elemAndXpath": {
"Login":"by.id('login')",
"password":"by.id('pass')",
"submit":"by.xpath(//button)"
}
}
}
このJSONファイルのテストを書くことができません。問題は、最後のキーの動的な性質によるものです。これで私を助けてください。
実際にはありません。私が書いたテストは、「elemAndXpath」のすべてのキーを持っています。今、私はすべての鍵を反復して、それに対応する価値を得たいと思っていますが、それは私のために働きません。 – Ravi
あなたが何かのためにキーを必要としない限り、それらをドロップして、by.xの文字列を配列のアイテムとして置くことができます。それ以外の場合は、オブジェクトに対してforループを実行し、同じ処理を行います。 – jdgower
はい、鍵が必要です。 forループを試してみました。Objectを使ってすべてのキーを取得しました。私はキーを反復するためにループを使用しましたが、値を取得できませんでした – Ravi