утверждение и проверка формата даты ДД-ММ-ГГГГ в python селен - PullRequest
1 голос
/ 03 апреля 2020

enter image description here Я пытаюсь автоматизировать использование python селена, и задача состоит в

(1). проверьте, отображается ли дата

(2). если отображается - выведите эту дату

(3). Наконец, подтвердите и убедитесь, что отображаемая дата имеет правильный формат, как и ожидалось (то есть) ДД-ММ-ГГГГ.

иногда мы обнаруживаем, что после отправки формы добавленная метка поля даты показывает формат в виде ММ-ДД -ГГГГ, но согласно требованию это должен быть ДД-ММ-ГГГГ, поэтому мы решили автоматизировать этот тест, чтобы после отправки мы хотели проверить выше 3 баллов, и я написал следующий код, в котором я могу решить пункт 1 и 2, но борется с точкой 3

«шаг 1»: я идентифицировал элемент «xpath» и сохранил его в переменной «element»

«шаг 2»: я использовал « Если выписка «с длиной» len »- в качестве способа проверки наличия / отображения даты

« шаг 3 »: если отображается, выведите дату успешно

« шаг 4 »: Наконец, как мне убедиться, что дата отображается в том формате, который мы ожидали

Следующий код, который я написал / скриншот прикреплен для справки

    element = driver.find_element_by_xpath('//*@id="incDetailTab"]/div[2]/div/div/div/div[2]/div/div/p[7]/strong')
    assert driver.find_element_by_xpath('//*@id="incDetailTab"]/div[2]/div/div/div/div[2]/div/div/p[7]/strong')

    if (len(element.text) == 0):
        print("Yes")
    else:
        print("No")

    print(element.text)

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Решение XPath:

substring(//*@id="incDetailTab"]/div[2]/div/div/div/div[2]/div/div/p[7]/strong/@style,1,2)<=31 and substring(//*@id="incDetailTab"]/div[2]/div/div/div/div[2]/div/div/p[7]/strong/@style,4,2)<=12 and string-length(substring(//*@id="incDetailTab"]/div[2]/div/div/div/div[2]/div/div/p[7]/strong/@style,7,4))=4

Возвращает true, если дата отображается правильно. Проверьте диапазон дней, месяцев и лет. Не идеальное решение, так как в этом выражении предполагается, что «11.10.2018» отображается в правильном формате, тогда как это может быть и не (MM.DD.YYYY).

0 голосов
/ 03 апреля 2020

Я предполагаю, что у вас есть строка даты, использующая element.text. Однако вы можете попробовать эту функцию ниже, чтобы проверить формат даты.

import datetime

def checkvaliddateformat(datestr):

  day,month,year = datestr.split('-')
  isValidDate = True
  try :
       datetime.datetime(int(year),int(month),int(day))
  except ValueError :
       isValidDate = False

  if(isValidDate) :
      print ("date is valid format(DD-MM-YYY) : "+datestr)
  else :
      print ("date is not valid format(DD-MM-YYY) : " +datestr)

checkvaliddateformat('30-12-2020')
checkvaliddateformat('12-30-2020')

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...