2017-11-28 13 views
0

現在、Javaスクリプトとセレンドライバを使用して、合成監視スクリプトを作成しています。しかし、ウェブサイトのログインはランダムに選択されたパスワード文字認証で構成されています。Synthetic Monitoring - 変数として使用されるランダムに生成されたパスワード文字を返します。

例えばログインがために頼む:

3rd character of your password:[input] 
5th character of your password:[input] 
7th character of your password:[input] 

要求された文字は、それぞれの時間を変更します。

ランダムに生成されたパスワード文字を返す必要があり、それらを変数として使用して、自分のパスワードからログイン認証リクエストを自動的に選択できるようにする必要があります。

これまでのところ私は、しかし、そのは動作していない、私のスクリプトでこれを持っている:

var password_chars = element.getText(); 
    var char1 = parseInt(password_chars[1].match(/<div>(\d+)/)[1] -1); 
    var char2 = parseInt(password_chars[2].match(/<div>(\d+)/)[1] -1); 
    var char3 = parseInt(password_chars[3].match(/<div>(\d+)/)[1] -1); 

残念ながら、私は個人情報のために任意の詳細は、Webサイトなどを...含めることはできません。

ご協力いただければ幸いです。

編集:私はこれを以下ましたか:)

おかげで、

ロブをご確認ください。

答えて

0

だから結局、私はこれが動作するようになった、と私はそれをやった方法をHERESに:

1)最初に要求されたパスワードの文字が含まれていると は、その文字列を分割する要素を返し、私の例では私が上に分割しなければなりませんでした新しい行。

2.)分割文字列を含む配列を作成します。

3.)各文字要求をintに解析します。これは、(th)または(nd)を削除することです。例えば、2nd→2

4.)各intから-1が得られます。 (配列がまだ分からない場合は0から始まります)

5.正しい文字列を取得するために、intをパスワード配列に適用します。

6.)スクリプトが正しい文字をキーとして送信するようにします。以下

含まれるコードは:

$browser.findElement($driver.By.className('answer')).getText() 
.then(function(reqpwdchars) //7 
{ 
     console.log(reqpwdchars); 
     var psplit = []; 
     psplit = reqpwdchars.split("\n") 

     var char1 = psplit[0] 
     var int_c1= parseInt(char1) 
     int_c1=int_c1-1 

     var char2 = psplit[1] 
     var int_c2= parseInt(char2) 
     int_c2=int_c2-1; 

     var char3 = psplit[2] 
     var int_c3= parseInt(char3) 
     int_c3=int_c3-1 

     var password_array = ['e','x','a','m','p','l','e']; 

     var pc1 = password_array[int_c1]; 
     var pc2 = password_array[int_c2]; 
     var pc3 = password_array[int_c3] 


$browser.findElement($driver.By.id('char1-ID')).sendKeys(pc1) 
     .then(function() //8 
    {  

$browser.findElement($driver.By.id('char2-ID')).sendKeys(pc2) 
     .then(function() //9 
    { 

$browser.findElement($driver.By.id('char3-ID')).sendKeys(pc3) 
     .then(function() //10 
    {  

私は、パスワード・アレイ・アイデアのためにジョンのKIを感謝したいと思います。

ありがとう、 Rob。

0

私はそれが正しいと思ったら、あなたのパスワードのための配列を作成したいと思います。

char[] pwd = { 'p', 'a', 's', 's', 'w', 'o', 'r', 'd' }; 

次に、パスワードのどの位置が尋ねられているかを確認します。

あなたの例を使用するには:あなたはPWD配列pwd[6]で7位第三のために最終的には二pwd[4]ため、pwd[2]を使用し、最初の入力の場合

3rd character of your password:[input] 
5th character of your password:[input] 
7th character of your password:[input] 

。このことができます

(あなたがウェブサイトからどこかにパスワードを読んでいる場合は、あなたがchar配列にパスワード文字列を変換したい場合があります。それを達成するための簡単な方法のために、このpostを見てください。)

・ホープ。そうでなければ私に教えてください。

関連する問題