2011-01-14 73 views
0

我想在選擇使用javascript設置項(可變我有日期)的JavaScript在選擇硒

這裏是如何我試圖設置此項目

<tr> 
    <td>select</td> 
    <td>Recent-Year</td> 
    <td>value=javascript{d=new Date();d.getYear()}</td> 
</tr> 

我得到:

[error] Option with value 'javascript{d=new Date();d.getYear()}' not found 
五言的

當我試圖通過這樣的:

<tr> 
    <td>select</td> 
    <td>Recent-Year</td> 
    <td>value=2011</td> 
</tr> 

它的工作原理。

我必須在此代碼中更改以設置此項目?

編輯

我不想這個命令分成幾行命令,因爲在另一個測試用例我已存儲的變量生日

<tr> 
    <td>storeEval</td> 
    <td>new Date('1966,09,16')</td> 
    <td>dateOfBirth</td> 
</tr> 

和我有3種選擇:出生天,出生月和出生Yearand我不想創建3個變量。

我想設置在選擇的項目是這樣的:

<tr> 
     <td>select</td> 
     <td>Birth-Year</td> 
     <td>value =${dateOfBirth.getFullYear()}</td> 
    </tr> 

回答

3

商店第一(使用storeEval),然後使用這個變量作爲您的期權價值JavaScript的評價:

<tr> 
    <td>storeEval</td> 
    <td>new Date().getYear()</td> 
    <td>varYear</td> 
</tr> 
<tr> 
    <td>select</td> 
    <td>Recent-Year</td> 
    <td>value=${varYear}</td> 
</tr> 

這應該工作


更新:作爲對您的編輯的迴應:您無法在JavaScript中使用value=,但可以使用JavaScript環境中提供的storedVars變量來創建所需的所有變量。例如,storedVars['myVar']可以通過Selenium直接訪問,如${myVar}。下面,我使用verifyEval來運行一些JavaScript,它將創建我需要的所有變量。

<tr> 
    <td>storeEval</td> 
    <td>new Date()</td> 
    <td>myDate</td> 
</tr> 
<tr> 
    <td>verifyEval</td> 
    <td>var date=storedVars['myDate']; storedVars['day']=date.getDate(); storedVars['month']=date.getMonth(); storedVars['year']=date.getFullYear();</td> 
    <td></td> 
</tr> 

然後你可以根據選擇的選項:

<tr> 
    <td>select</td> 
    <td>Birth-Day</td> 
    <td>value=${day}</td> 
</tr> 
<tr> 
    <td>select</td> 
    <td>Birth-Month</td> 
    <td>value=${month}</td> 
</tr> 
<tr> 
    <td>select</td> 
    <td>Birth-Year</td> 
    <td>value=${year}</td> 
</tr> 

我知道這不是理想的解決方案,但它確實有點幫助,因爲你不能做value=javascript{...}(不,我知道的無論如何,但如果別人知道,那麼請說)。

+0

是的,這工作,感謝的是,但它不是我想要的,因爲在另一個測試用例我已存儲的變量的生日(新日期(「1974,09,16」)),我有3種選擇:dayOfBirth,monthOfBirth和yearOfBirth,我不想創建3個變量。我想在選擇設置項目,例如value = $ {dateOfBirth.getFullYear()} – user278618 2011-01-14 15:32:06