0

セレンを使用してフォームに記入するだけです。ユーザー名フィールドに一意の値を生成するために必要です。どうやってやるの?

私が持っている

コマンド: type
ターゲット: id_of_my_field
値: username+unique_value ???

4

4 に答える 4

5

これを行うには、javascript を使用できます。

: javascript{'username'+Math.floor(Math.random()*100000)}

これにより、6 桁の乱数がユーザー名に追加されます。

詳細とこれを行う他の方法については、このSOの質問と回答を参照してください...

于 2010-08-06T18:01:05.097 に答える
1

私にとってうまくいく私のソリューション:

次のテキストを .js ファイルとして保存し、[オプション] -> [オプション] の [Selenium Core Extensions] リストに追加します...

Selenium.prototype.doTypeRandomName = function(locator) 
{
  /**
  * Sets the value of an input field to a random "name" 
  * as though you typed it in.
  */
  // All locator-strategies are automatically handled by "findElement"
  var element = this.page().findElement(locator);

  /* The following block generates a random name 8 characters in length */
  var allowedChars = "abcdefghiklmnopqrstuvwxyz";
  var stringLength = 8;
  var randomstring = '';

  for (var i=0; i<stringLength; i++) {
    var rnum = Math.floor(Math.random() * allowedChars.length);
    randomstring += allowedChars.substring(rnum,rnum+1);
  }

  // Replace the element text with the new text
  this.browserbot.replaceText(element, randomstring);
}

完了TypeRandomNameしたら、ランダムな「名前」を生成するテキストボックスごとに、Selenium でコマンドを選択するだけです。

于 2012-03-13T15:57:26.513 に答える
1

グローバルに再利用可能なソリューションの手順は次のとおりです

1) ダウンロードはこちらから sideflow.js をダウンロードします。

2) 次の行を追加します。

Selenium.prototype.doTypeRandomName = function(locator) {
    /**
     * Sets the value of an input field to a random email id,
     * as though you typed it in.
     *
     * @param locator an <a href="#locators">element locator</a>
     */

    // All locator-strategies are automatically handled by "findElement"
    var element = this.page().findElement(locator);

    /* The following block generates a random email string */
    var allowedChars = "abcdefghiklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    var stringLength = 8;
    var randomstring = '';

    for (var i=0; i<stringLength; i++) {
        var rnum = Math.floor(Math.random() * allowedChars.length);
        randomstring += allowedChars.substring(rnum,rnum+1);
    }

    // Replace the element text with the new text
    this.browserbot.replaceText(element, randomstring);
};

3) ファイルを保存する

4) Selenium ide -> オプション -> オプション -> Selenium Core extensions -> そこにファイルの参照を指定します。

5) これで、randomname 関数が auto-intellisense に表示され、"typerandomname" コマンド カテゴリとして表示されます。

6) サンプルの使用例 (ベース URL が google.com の場合)

<tr>
    <td>open</td>
    <td>/</td>
    <td></td>
</tr>
<tr>
    <td>typerandomname</td>
    <td>css=input[class='gbqfif']</td>
    <td></td>
</tr>

これがお役に立てば幸いです

于 2014-09-08T07:16:14.533 に答える
0

コードで JavaScript を使用せずに一意の番号を生成する方法を次に示します (私は Java を使用しました)。

    DateFormat dateFormat = new SimpleDateFormat("ddHHmmss");            /* Here you create object of the class DateFormat, and SPECIFY THE FORMAT (ddHHmmss). (Don`enter code here`t forget to import class Date(ctrl+shift+o  if you are using Eclipse)) */  
    Date date = new Date();                                              /* Here you create object of the class Date. (Dont forget to import class Date. (Dont forget to import class Date(ctrl+shift+o  if you are using Eclipse)) */  
    String random_number = dateFormat.format(date);                      /* Assign your current Date(something like 19184123) (ddHHmmSS) to a local variable(it require a String) */  
    yourWebDriver().findElemnt(By.cssSelector("input#someId")).sendKeys("test"+random_number+"@tester.com");    /* send keys to your input injecting random number */ 

このような方法は、現在の時間を使用するため、繰り返されることのない真に一意の番号を提供します...

マイル秒を DateFormat に含めると、さらにランダム性を追加できます

于 2013-02-20T10:00:10.457 に答える