51Testing软件测试论坛

标题: 执行程序报错:IndexError: Cannot choose from an empty sequence,怎么去处理 [打印本页]

作者: 测试积点老人    时间: 2021-1-7 11:00
标题: 执行程序报错:IndexError: Cannot choose from an empty sequence,怎么去处理
我写了一个程序,想要去将数据进行分离:方法是:函数传参。

想着我只要定义一个函数并传参,然后实例化这个函数就可以。

我这里定义的是一个列表。

这是一个测试用例:
  1. #   测试列举出KID
  2. @allure.feature("测试用例1:获取kid")
  3. @allure.severity(allure.severity_level.CRITICAL)
  4. def test_kid(list_kid=[]):
  5.     select_keyId = random.choice(list_kid)
  6.     select_keyID()
  7.     #判断是否存在,存在就截图
  8.     # reponse = driver.find_elements_by_xpath(' //*[@id="iform"]/table/tbody/tr[2]/td/table/tbody/tr[67]/td/table/tbody/tr[2]/td[2]/div/text()')    # 这里xpth中是文本格式的,selenium的find方法无法获取到text()
  9.     #   因此可以这样:拆分:先获取到text文本上一层的,再转化为文本:
  10.     reponse = driver.find_element_by_class_name("forcewrap").text
  11.     if len(reponse) != 0 and select_keyId in reponse:
  12.         if Path(kid_scr_file).is_dir():
  13.             print(" 测试通过!返回值为:%s" %reponse)
  14.             driver.save_screenshot(kid_screen_pic_file)
  15.             time.sleep(2)
  16.         else:
  17.             Path(kid_scr_file).mkdir()
  18.             print("重新创建截图文件夹!")
  19.     else:
  20.         print("未获取到reponse,测试失败!")

  21. #   测试与kid相关的X509证书
  22. @allure.feature("测试用例2:获取与kid相关的X509证书")
  23. @allure.severity(allure.severity_level.CRITICAL)
  24. def test_x509(list_keyId=[]):
  25.     select_keyId = random.choice(list_keyId)

  26.     select_x509()
  27.     ele_KeyID = driver.find_element_by_xpath('//*[@id="sg_id"]')
  28.     ele_KeyID.click()
  29.     ele_KeyID.send_keys(select_keyId)
  30.     ele_test = driver.find_element_by_xpath('//*[@id="SUBMIT"]')
  31.     ele_test.click()
  32.     #   判断是否有返回值,有才能进行下一步:截图
  33.     reponse = driver.find_element_by_class_name("forcewrap").text
  34.     time = driver.find_element_by_class_name("listlr").text
  35.     if len(reponse) != 0 and len(time) != 0 :
  36.         print(" 选取的KID为 %s ,有返回值,测试成功!" % select_keyId)
  37.         print("返回值为: %s" % reponse)
  38.         driver.save_screenshot(x506_screen_pic_file)
  39.         # #   滚动页面 截图
  40.         scoll()
  41.         driver.save_screenshot(x506_screen_pic_file)
  42.     else:
  43.         print("没有返回值,可能存在缺陷,请手工检查!")
  44.         driver.save_screenshot(x506_screen_pic_file_wrong)
复制代码
数据传递,调用函数:
  1. list_keyId1 = ['298359647630d60de36cdf2262614424','56afd486d67036725b761921fa7617f6','e9dec86f4eb23b59dce769a00b653ecc','e0e7c138dbba879fde8e7bcf4f7d5de2']
  2. #   测试用例1:列举出KID
  3. test_kid(list_keyId1)
  4. #   测试用例2:获取与kid相关的x509证书
  5. test_x509(list_keyId1)
复制代码
发现有报错,如下:

self = <random.Random object at 0x030887C8>, seq = []
     def choice(self, seq):
         """Choose a random element from a non-empty sequence."""
         try:
             i = self._randbelow(len(seq))
         except ValueError:
>            raise IndexError('Cannot choose from an empty sequence') from None
E           IndexError: Cannot choose from an empty sequence

d:\python\lib\random.py:258: IndexError


这个怎么去处理,百度很多,无法解决。



作者: 郭小贱    时间: 2021-1-8 10:54
这个只能等大佬也帮忙回答了,搬好小板凳来学习。
作者: jingzizx    时间: 2021-1-8 11:05
学习
作者: bellas    时间: 2021-1-8 13:44
学习
作者: 海海豚    时间: 2021-1-8 14:24
http://www.51testing.com/html/06/15214706-4464724.html   看下这个
作者: litingting0214    时间: 2021-1-8 14:47
http://www.51testing.com/html/06/15214706-4464724.html   参考下这篇文章




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2