に動作しません私は分度器スクリプトは、ここで適切に
をやろうとしているまさにである私は、ユーザー
IのgetText(についての情報を含むテーブルでページを開く)要素の数を示しています表中のユーザー(FE「リストで11人のユーザー」)
の私は、「リスト内のユーザー」の部分を削除し、以降のループ
のために、私は、ユーザー名によって特定のユーザーを見つける必要が使用する文字列を整数に変換します(9列目)、j
番のwh ichはこのユーザーの情報が入っている行の番号です(これは私が立ち往生した場所です)
私はj
行の最初の列に移動します(この特定のユーザーの編集ボタンになります)。私はこれは私が
true
1
true
2
true
3
true
4
true
5
true
6
true
7
true
8
true
9
true
10
だから、それは数えるが、常にtrueを返すん得るものです
it("Validation of ND account", function() {
//login
element(by.id("j_username")).sendKeys($usernameND);
element(by.id("j_password")).sendKeys($passwordND);
element(by.buttonText("Login")).click();
//navigate to a page with list of users displayed in a table
element(by.xpath('//a[@short-title="Users"]')).click();
//narrow the search result by typing 'testuser'
element(by.model("userList.searchBox.options.query")).sendKeys($usernameND);
//the table has 11 results such as 'testuser', 'testuser1', 'testuser2'
//I get text of element with text '11 users in list' to get just the number out of it
element(by.xpath('//div[@viewid="userList"]//div[@class="results-count ng-binding"]')).getText().then(function(numberOfUsers) {
numberOfUsers = Number(numberOfUsers.replace(" Users in list",""));
// declare a variable which will be responsible for accessing to j row in a table
var j=1
//I search through 11 rows from the table for my username
for (i=1; i<numberOfUsers; i++) {
element(by.xpath("(//td[@data-field='username'])["+j+"]")).getText().then(function(username){
if (username===$usernameND){
console.log("true");
console.log(j);
j++
} else {
console.log("false");
j++
}
});
}
});
});
をしようとしたコードのユーザー
一つの例のユーザー名が異なっていても(最初の行を毎回チェックしているようです)私は今では、各行にアクセスし、罰金のように見えるが、最初の行に、間違って何数11を返す
true
11
false
false
false
false
false
false
false
false
false
を取得
element(by.xpath('//div[@viewid="userList"]//div[@class="results-count ng-binding"]')).getText().then(function(numberOfUsers) {
numberOfUsers = Number(numberOfUsers.replace(" Users in list",""));
for (i=1; i<numberOfUsers; i++) {
element(by.xpath("(//td[@data-field='username'])["+i+"]")).getText().then(function(username){
if (username===$usernameND){
console.log("true");
console.log(i);
} else {
console.log("false");
}
});
}
});
別のアプローチを試してみてください?それを修正するには?
P.S.私は何をしているのかを例に挙げます screenshot of the page 私のユーザーを見つけてそれに関連する「編集」ボタンをクリックしたいと思います。最初の列の6行目のセルをクリックするだけです。しかし、より多くのユーザーが追加される場合には、信頼できるものにしたいと考えています。これを行うには、ユーザー名列を検索し、このユーザーがテーブル内にある行の番号を文書化し、見つかった行番号の最初の列のセルに移動する必要があります。
よく私のテーブルがどれくらいの行を持つかを決定する部分です。はい、それはおそらくあなたのやり方を単純にするでしょうが、これは私が困難に直面しているところではありません。私はP.S.を追加しました。私の質問の段落、私は何をやっている説明を見てみましょう。ありがとうございました –
私の編集 – Kacper
を確認してください。それは私が探しているユーザーの行を見つける(私のテーブルの11の番号6を言うことができます)それは編集ウィンドウを開きますが、その後、そのボタンを5回(11-6)をクリックしようとしますボタンが表示されなくなるため、エラーが発生します。私は –