本文主要讲python 利用random取随机数的方法
三种方法
- random.sample()
- random.choice()
- random.randint()
random.sample
语法:
random.sample(list, N)
list: 一个数组,可以是元素数组,也可以是其他的数组。比如: numbers=[1,2,3,4,5]
N: 从数组中随机取出N个
例1
从数组中随机取出2个元素,代码片段如下:
import random
numbers = [1,2,3,4,5]
chosen = random.sample(numbers, 2)
print(chosen)
print(chosen[0])
print(chosen[1])
运行结果:
[4, 5]
4
5
注:数组的起始位为0
例2
python与selenium结合,做自动化测试,有时候需要实现随机获取一个元素。
比如:获取“我的订单”页面所有的订单,任意选中一个,并且查看订单详细信息。
从元素数组中随机取出1个元素,代码片段如下:
import random
from selenium import webdriver
def ChooseOneProvideRxButton(self):
print('find all provide Rx buttons')
buttons = self.driver.find_elements_by_xpath(self.ProvideRx_xpath)
'''
find_element:获取某个元素,如果根据查找条件可以找到多个满足条件的元素,那么会默认选择第一个元素
find_elements:获取某组元素
'''
print('all buttons:', buttons)
ProvideRxButton = random.sample(buttons, 1)
print('the random choice of ProvideRx button is:', ProvideRxButton)
ProvideRxButton.click() # 因为随机取出来的本来就是元素,所以不需要再次find_element,直接对元素执行click 操作
print('click provide Rx button')
运行结果:
find all provide Rx buttons
all buttons: [<selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-1")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-2")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-3")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-4")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-5")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-6")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-7")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-8")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-9")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-10")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-11")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-12")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-13")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-14")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-15")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-16")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-17")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-18")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-19")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-20")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-21")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-22")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-23")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-24")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-25")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-26")>]
the random choice of ProvideRx button is <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-19")>
click provide Rx button
random.choice
语法:
random.choice(list)
从list 数组中随机获取一个元素
例1
import random
numbers = [1,2,3,4,5]
chosen = random.choice(numbers)
print(chosen)
运行结果:
1
同理,这个也可以用于自动化测试中获取任一一个页面元素
random.randint
语法:
random.randint(N, M)
N: 起始数
M: 终止数
从N到M随机取出一个数
例1
import random
chosen = random.randint(2,6)
print(chosen)
运行结果:
5