2017-06-01 64 views
0

我在python和selenium中找到这段代码来查找已删除的记录并验证记录是否被删除。删除Python Selenium验证记录

def find_deleted_device(self, mac, serialno): 
    index = 0 
    loopNext = True 
    matched = False 
    while loopNext: 
     index = 0 
     if not element_locator.find_elements_by_css(driver_obj, self.no_device): 
      record = element_locator.find_elements_by_css(driver_obj, self.devices_record) 
      macaarray = element_locator.find_elements_by_css(driver_obj, self.device_record_mac_address) 
      serialnum = element_locator.find_elements_by_css(driver_obj, self.device_record_serial_number) 

      for facility_mac, serialnumber in zip(macaarray, serialnum): 
       if facility_mac.text == mac and serialnumber.text == serialno: 
        loopNext = False 
        matched = True 
        break 
       elif index == len(record) - 1: 
        if index >= 19: 
         next_page = element_locator.find_element_by_css(driver_obj, self.nextpageselector) 
         if next_page.is_enabled(): 
          next_page.click() 
         else: 
          loopNext = False 
        index = index + 1 
       else: 
        loopNext = False 
     else: 
      print('No matching macaddress and serial number, No device message appears') 
      assert True 
      loopNext = False 

    if matched: 
     print "The mac and serial number matched, should have been deleted" 
     assert False 
    else: 
     print('No matching macaddress and serial number found') 
     assert True 
sleep(2) 

但问题是,有两种情况: 1)如果只有一个记录存在,我们删除然后我得到的消息“不存在任何记录” 2)第二种情况是一些记录存在,我可以遍历并验证记录是否被删除。

在场景1的情况下,它工作正常。 在场景2的情况下,它会通过但出现类似“1496424768.39”的错误。我如何逃避这个错误。

+0

硒的一个问题是当我们定义一个元素时,它总是试图找到它,无论发生什么并给出错误。我该如何逃避。我试过这也record = element_locator.find_elements_by_css(driver_obj,self.devices_record) 如果记录是无: 打印“记录为无,没有找到记录” 断言真正的 中断 – swati

回答

0

我使用以下替代方法解决了我的问题。

#This method is used to search deleted group 
    def find_deleted_device_with_paging(self, mac, serialno): 

     page_num = element_locator.find_element_by_css(driver_obj, ".test-grid-pagination-summary") 
     if page_num.text < 1: 
      print('No matching macaddress and serial number found') 
      assert True 

     else: 
      index = 0 
      loopNext = True 
      matched = False 
      print "The mac and serial number matched, should have been deleted" 
      while loopNext: 
       index = 0 
       record = element_locator.find_elements_by_css(driver_obj, self.devices_record) 
       macaarray = element_locator.find_elements_by_css(driver_obj, self.device_record_mac_address) 
       serialnum = element_locator.find_elements_by_css(driver_obj, self.device_record_serial_number) 

       for facility_mac, serialnumber in zip(macaarray, serialnum): 
        if facility_mac.text == mac and serialnumber.text == serialno: 
         loopNext = False 
         matched = True 
         break 
        elif index == len(record) - 1: 
         if index >= 19: 
          next_page = element_locator.find_element_by_css(driver_obj, self.nextpageselector) 
          if next_page.is_enabled(): 
           next_page.click() 
          else: 
           loopNext = False 
         index = index + 1 
        else: 
         loopNext = False 

      if matched: 
       print "The mac and serial number matched, should have been deleted" 
       assert False 
      else: 
       print('No matching macaddress and serial number found') 
       assert True 

所以,取而代之的验证消息的,我比较这页的分页的目的上存在的记录数。这固定了我的代码。