日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RFS的web自动化验收测试——第12讲 List Variables-List变量及其用法

發布時間:2025/3/14 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RFS的web自动化验收测试——第12讲 List Variables-List变量及其用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言:什么是RFS——RobotFramework+Selenium2library,本系列主要介紹web自動化驗收測試方面。

(?@齊濤-道長?新浪微博)

?

這一講我們重點來介紹List Variables-List變量及其用法。

一、List變量及其用法

?在我們前面幾篇文章里用到了很多List變量,相信以后各位也會碰到需要使用的地方。

1、List變量賦值

和Scalar類似的賦值,除了用Set Variable還可以用Create List。

?

運行一下:

?

?

2、List變量使用

在使用上要注意看關鍵字的參數到底是Scalar的還是List,區別就是看變量名前面是否有 * (星號),如圖:

這個關鍵字的name就是支持傳入Scalar型的參數,*args就是支持可以傳入List型值的。

所謂List型值其實是說支持多個值,即不確定個數的,List-like一樣的值,如下圖的2、3行:

?

?

當然,并不是說沒有星號的就不能用List的,只要是多個變量就可以用List傳值。

像Log這個關鍵字,他有2個Scalar型的傳入參數,如果我想傳List也是可以的,但是必須是一個有2個元素的List,因為Log的第二個參數有默認值,所以如果你傳入1個元素的List也是可以的,但是如果傳入3個元素的List,那么就會報錯了。

你可以寫成上面這樣,但是我并不推薦這種做法,這里只是為了講解List的作用而做的示范。

?

綜上,對于有多個參數的關鍵字,你可以按照需要傳入多個Scalar變量,也可以傳入List變量,根據你自己的需要選擇合適的方式。

?

二、變量轉換

之前提過了Scalar變量用 $ 作為標識符,List型變量用 @ 作為標識符,而且他們是可以進行轉換的,理論上可以互相進行轉換,但是也有一點限制。

1、List變量轉換成Scalar

這種轉換的效果是把整個List變成一個Scalar,我覺得作用主要是對于那些只接收Scalar變量參數的關鍵字, 而你又想傳List的全部值的時候,或者其他你需要的把List當作Scalar的情況下使用。例如Fail關鍵字,他的msg這個參數只能接收 Scalar變量。

?

如果你想用Fail,把f這個變量的值都打出來,下面這樣寫是肯定會報錯的。

報錯信息為 Keyword 'BuiltIn.Fail' expected 0 to 1 arguments, got 3.

那么我們轉換一下,這樣寫就不報錯了。

運行結果:

?

2、Scalar變量轉換成List

其實以前介紹用戶關鍵字的時候也演示過,對于返回值是List的關鍵字,如果你給要賦值的變量寫的是Scalar的,他會自動把他變成List的。

還是上面這個例子,我們把@{f}改成${f}

這樣也是OK的。

?

3、轉換的限制

但是,我前面提到了,轉換是有一點限制的。

首先,上一講提到了,變量要進行賦值(類似于初始化)之后才能使用,如果沒有進行過賦值的RIDE里會有顏色提示,用一個前面的圖

圖中的紫色${f}就是提示你他沒有進行過賦值,此時而系統會默認他就是@{f}的Scalar形式,這個可以看上面的執行結果。

那么這個限制就在Scalar轉換成List的地方,系統會默認${f}是@{f}的Scalar形式,但是他并不會默認@{f}是${f}的list形式,即使${f}已經是list了。

看一下例子:

?

?這樣寫的話運行就會報錯:Non-existing variable '@{f}'.

那這時候${f}有什么用呢?除了前面介紹的作為Scalar型變量,值是所有元素,還可以根據index直接獲得某個元素。

例如:

運行結果:

?

看完上面的限制之后,還要補充一點,系統會默認${f}是@{f}的Scalar形式,這個也是有限制,必須是${f}沒有被賦值過的情況,如果${f}被賦值過是什么情況呢?

看看例子:

你覺得${f}會是什么值呢?

?

所以,這里要注意,盡量不要讓Scalar和List的變量重名,特別是你要用作不同的用途的時候。

一個重要的影響就是會導致下面的List元素獲取出現越界的情況。

?

三、List元素的獲取

List元素的獲取只有一種方式,無論是一維List還是二維List,都是用${變量名[index]},就是用$的變量,在變量名后面加上方括號,里面是序號。

1、一維List的例子。

運行:

?

2、二維List的例子。

運行結果:

如果log后面只寫${f[1]},那么得到的結果如圖:

?

總之,就是用方括號來表明你需要的元素,如果是多維List,要想清楚你到底要哪層的,不要寫少了或者寫多了。

轉載于:https://www.cnblogs.com/zhuifengji/p/4602578.html

總結

以上是生活随笔為你收集整理的RFS的web自动化验收测试——第12讲 List Variables-List变量及其用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。