What method to define a random float

Hi:
I’ve applied the watir API to login to a website and input a integer
value into a textfield. According to my task is to test the website’s
responding time regarding to distinguished values, it needs to input a
random number everytime. Thus, I’ve defined a random number by coding:

@num = rand(5)

This integer should not exceed than 5. However, I applied the Watir to
write the variable to that corresponding textfield where I coded:

$browser.text_field(:id, ‘keyword_instance_SearchBidMax’).set(@num)

#The variable @num should be any integer which is between 1 and 5.
However, it turned to the error message as following:

D:/ruby/lib/ruby/gems/1.8/gems/firewatir-1.6.7/lib/firewatir/elements/text_field.rb:199:in
doKeyPress': undefined methodlength’ for 4:Fixnum (NoMethodError)

Can you help me to figure it out please? Thanks.

Hi,

When the argument to rand is 0, it will return a random float number
greater than or equal to 0 and less than 1.

On Dec 26, 2010, at 10:23 PM, Fan J. wrote:


Posted via http://www.ruby-forum.com/.

Best regards,
Zhi-Qiang L.
[email protected]

On 12/26/2010 08:23 AM, Fan J. wrote:

Hi:
I’ve applied the watir API to login to a website and input a integer
value into a textfield. According to my task is to test the website’s
responding time regarding to distinguished values, it needs to input a
random number everytime. Thus, I’ve defined a random number by coding:

@num = rand(5)

The subject of your message says that you want a random float rather
than a random integer. If you want a random float between 0 and 5, do
the following:

@num = rand * 5

Otherwise, you’re doing fine with the method you’re using to get a
random integer.

This integer should not exceed than 5. However, I applied the Watir to
write the variable to that corresponding textfield where I coded:

$browser.text_field(:id, ‘keyword_instance_SearchBidMax’).set(@num)

#The variable @num should be any integer which is between 1 and 5.
However, it turned to the error message as following:

D:/ruby/lib/ruby/gems/1.8/gems/firewatir-1.6.7/lib/firewatir/elements/text_field.rb:199:in

doKeyPress': undefined methodlength’ for 4:Fixnum (NoMethodError)

You passed your integer to a method that expects a string. That’s why
something is ultimately calling the length method on the object you
passed in. Look up the to_s method for the Integer class and see if
that helps you out.

-Jeremy

Jeremy B. wrote in post #970763

The subject of your message says that you want a random float rather
than a random integer. If you want a random float between 0 and 5, do
the following:

@num = rand * 5

Thanks a lot. It works fine now :slight_smile: