簡體   English   中英

如何編寫Selenium IDE代碼以正確使用正則表達式?

[英]How do I write Selenium IDE code to properly use Regular Expressions?

我正在嘗試使用正則表達式來測試提示中的正確答案。 當我使用下面的正則表達式測試響應時,我得到了一個錯誤的“假”條件,我確實希望它是“ true”。例如,當我運行代碼並用數字3回答問題時,Selenium告訴我如果我將正則表達式更改為大於或等於這種類型的表達式,那么它是錯誤的* javascript {storedVars ['userAnswer'] <= 11;} * Selenium說該腳本是真實的,就像人們期望的那樣。

其他信息:我首先懷疑是數據類型問題(即字符串與數字)。 因此,我編寫了代碼以確保與正則表達式進行比較的變量是一個數字。 那也沒有幫助。 這是代碼。 我在想什么???

<tr>
    <td>showPrompt<\td>
    <td>Pick a number between 1-11 only!!!&nbsp;&nbsp;&nbsp;<br /> *1<\td>
    <td>userAnswer<\td>
<\tr>
<tr>
    <td>storeEval<\td>
    <td>javascript{storedVars['userAnswer'] == ('^[1-9][0-1]?$);}\td>
    <td>results<\td>
<\tr>
<tr>
    <td>echo<\td>
    <td>The results is = ${results}.<\td>
    <td><\td>
<\tr>

這是我用來理解相同問題的另一種方法。 我將變量設置為數字5。 然后,我處理5個比較,希望所有比較都返回“ true”。 但是,只有前兩個測試返回true,而后三個返回false。 他們來了。 我缺少或不了解什么?

<tr>
    <td>storeEval<\td>
    <td>javascript{new Number(5);}<\td>
    <td>nbrAnswer<\td>
<\tr>
<tr>
   <td>echo<\td>
   <td>The nbrAnswer value is = ${nbrAnswer}.<\td>
   <td><\td>
<\tr>
<tr>
   <td>storeEval<\td>
   <td>javascript{storedVars['nbrAnswer'] == 5;}<\td>
   <td>results<\td>
<\tr>
<tr>
   <td>storeEval<\td>
   <td>javascript{storedVars['nbrAnswer'] == [5];}<\td>
   <td>results<\td>
<\tr>
<tr>
   <td>storeEval<\td>
   <td>javascript{storedVars['nbrAnswer'] == [1-9];}<\td>
   <td>results<\td>
<\tr>
<tr>
   <td>storeEval<\td>
   <td>javascript{storedVars['nbrAnswer'] == ('^[1-9]');}<\td>
   <td>results<\td>
<\tr>
<tr>
   <td>storeEval<\td>
   <td>javascript{storedVars['nbrAnswer'] == ('^[1-9][1-2]?$');}<\td>
   <td>results<\td>
<\tr>

你好硒開發人員

我找到了自己問題的答案。 首先,我必須從Selenium 2.9.0升級到Selenium 2.9.1。 這使我可以訪問JavaScript函數“ test”。 然后,我可以編寫以下代碼。

  1. 提示用戶輸入1-11之間的數字。
  2. 將提示變量放入數字對象。 (不確定是否有必要?)
  3. 將正則表達式定義為變量。
  4. 最后,使用JavaScript的“測試”功能產生一個布爾響應,並將其放在“結果”變量中。

這是代碼。

<tr>
    <td>showPrompt</td>
    <td>Please select a number between 1-11 only!!!</td>
    <td>userAnswer</td>
<\tr>
<tr>
    <td>storeEval</td>
    <td>new Number(storedVars['userAnswer'])<\td>
    <td>nbrAnswer</td>
</tr>
<tr>
    <td>storeEval</td>
    <td>javascript{var regExpTester = /^[1-9][0-1]?$/; regExpTester.test(storedVars.nbrAnswer);}</td>
    <td>results</td>
<\tr>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM