本文主要讲python 利用random取随机数的方法
语法:
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: [.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-1")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-2")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-3")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-4")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-5")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-6")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-7")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-8")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-9")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-10")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-11")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-12")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-13")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-14")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-15")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-16")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-17")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-18")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-19")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-20")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-21")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-22")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-23")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-24")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-25")>, .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-26")>]
the random choice of ProvideRx button is .webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-19")>
click provide Rx button
语法:
random.choice(list)
从list 数组中随机获取一个元素
例1
import random
numbers = [1,2,3,4,5]
chosen = random.choice(numbers)
print(chosen)
运行结果:
1
同理,这个也可以用于自动化测试中获取任一一个页面元素
语法:
random.randint(N, M)
N: 起始数
M: 终止数
从N到M随机取出一个数
例1
import random
chosen = random.randint(2,6)
print(chosen)
运行结果:
5