2017-04-17 54 views
-2

我正在寫一個ruby webdriver測試,需要存儲一個動態值,例如稍後在文本中使用的訂單ID。我想我需要從字符串中提取值,然後將其作爲變量存儲以便將來使用。如何在Webdriver Ruby測試中存儲動態值和重用

字符串看起來像這樣,我只需要提取/存儲數值。

<span class="receiptNum hidden-xs">Receipt #: 12303430</span> 

如何提取價值,創造以備將來使用一個變量任何提示或例子將是巨大的!

+0

請閱讀「[問]」,包括鏈接頁面,「[mcve]」和「[Stack Overflow用戶需要多少研究工作?](http://meta.stackoverflow.com/questions/261592) 」。我們希望看到你的努力的證據。你嘗試了什麼?你搜索並沒有找到任何東西?你有沒有找到東西,但它沒有幫助?你有沒有嘗試寫代碼?如果不是,爲什麼?如果是這樣,那麼最小的代碼示例顯示了您嘗試的內容以及它爲什麼不起作用?沒有它,看起來你沒有嘗試並希望我們爲你寫信。 –

+0

對不起。我是Selenium和Ruby/Rspec的新手,所以我一直在研究如何處理這種情況。我研究了這個網站和其他的網站,並且看到了其他編程語言的一些類似的問題,但不是Ruby/Rspec特定的,這就是爲什麼我在這裏提交了我的問題。從我所看到的,也許正則表達式從span標記中提取數值會最好?但後來我需要將此值存儲爲將來傳遞的變量以測試訂單查找功能。 – NCaito

+0

我添加了一些代碼來測試元素在成功下單後顯示在頁面上。 expect(@ driver.find_element(:class,「receiptNum hidden-xs」)。displayed。)to be_truthy – NCaito

回答

0

要提取文本(只有數字)從這個元素的,請嘗試使用下面的代碼:

@numbers = @driver.find_element(:css=>'receiptNum').text.scan(\d+) 

目前,我在其中可以再次在同樣的測試中使用的實例變量保存此號碼因爲它將與測試對象一起流動,直到測試結束。

其他選項包括將其保存在臨時文本文件中,並在需要時讀取它。

注意:現在提取數據並稍後使用它並不是一個好的做法,請儘量不要頻繁使用它。

希望它有幫助!

相關問題