如何在ruby selenium中生成可以在文本字段中使用的随机字符串

时间:2017-10-29 12:29:03

标签: ruby selenium

我想知道如何生成随机字符串,例如TufwGfXZskHlPcYrLNKg

这将用于在我们的应用程序中创建一个新的教学类,但为了测试的目的,我想为每个创建的类分配一个随机名称。

目前我使用的是application.yml文件中其他位置的变量,例如

qa_newclass_name: 'Cucumber'

在测试过程中,我将其分配给步骤,如下所示: @wait.until {@driver.find_element(:css => '#name').click} @driver.find_element(:css => '#name').send_keys (Figaro.env.qa_newclass_name)

这样做的目的是制作班级名称' Cucumber'

而不是指定' Cucumber'对于每个测试,是否有一种简单的方法来生成随机的东西,我可以分配给#name字段?也许这可以是一个函数,可以生成与上面其余代码一致的字符串?

理想情况下,这应该在Ruby中。

1 个答案:

答案 0 :(得分:0)

一种简单的方法是:

require 'securerandom'

@driver.find_element(...).send_keys (SecureRandom.urlsafe_base64(5).gsub(/[^a-z ]/i, '').upcase)

正则表达式是必要的,因为#urlsafe_base64可能会生成-_等字符。升级是必要的,因为您正在寻找定义常量,而小写字母可能是随机字符串的第一个字符。

没有所需模块和正则表达式的解决方案可能类似于:

@driver.find_element(...).send_keys ((5.times).map{(65 + rand(26)).chr}.join)