body_page_locator.py 7.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. '''
  4. @File : body_page_locator.py
  5. @Time : 2024/11/12 08:13:54
  6. @Author : dulip3ng
  7. @Version : 1.0
  8. @Desc : None
  9. '''
  10. class BodyPageLocator:
  11. SHEET_ARGS_LOC = "(//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//ul[@class = 'k-tabstrip-items k-reset']//span[text()='%s'])[%d]"
  12. BUTTON_ARGS_LOC = "//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[text() = '%s']/.."
  13. BUTTON_ARROW_ARGS_LOC = "//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[text() = '%s']/../following-sibling::a/span[@class = 'k-icon k-i-arrow-s']"
  14. SUB_BUTTON_ARGS_LOC = "//div[@class = 'k-animation-container k-split-wrapper']/ul//span[text() = '%s']/.."
  15. #单据体存在相对位置相同,名称相同的字段,使用顺序号进行区分,顺序号从1开始
  16. ACTIVATE_FIELD_ARGS_LOC = "(//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[@data-field=//th[@data-title='%s']/@data-field and @data-rowid='%d'])[%d]"
  17. TEXT_FIELD_ARGS_LOC = "(//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'TAB') and @class='k-content k-state-active']//*[@data-field=//th[@data-title='%s']/@data-field and @data-rowid='%d']/ancestor::td/descendant::input[1])[%d]"
  18. SELECT_FIELD_ARGS_LOC = "(//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'TAB') and @class='k-content k-state-active']//input[@data-field=//th[@data-title='%s']/@data-field and @data-rowid='%d']/ancestor::td/span)[%d]"
  19. SELECT_ITEM_ARGS_LOC = "//div[@class = 'k-animation-container' and contains(@style, 'display: block') ]/div/div[2]/ul/li/span[text() = '%s']"
  20. BASE_FIELD_ARGS_LOC = "(//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'TAB') and @class='k-content k-state-active']//div[@data-field=//th[@data-title='%s']/@data-field and @data-rowid='%d']/descendant::input)[%d]"
  21. BASE_ITEM_ARGS_LOC ="//div[@class = 'k-animation-container']//table[@class = 'k-selectable']/descendant::td[text() = '%s']"
  22. FIELD_VALUE_ARGS_LOC = "(//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[@data-field=//th[@data-title='%s']/@data-field and @data-rowid='%d'])[%d]"
  23. FIELD_HYPERLINK_VALUE_ARGS_LOC = "//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[@data-field=//th[@data-title='%s']/@data-field and @data-rowid='%d']/a"
  24. ROW_COUNT_LOC = "//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[@data-field=//th[@data-title='序号']/@data-field and @data-rowid='0']/ancestor::td/../../tr[last()]/td[1]//span"
  25. FIELD_ATTRIBUTE_ARGS_LOC = "//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[@data-field=//th[@data-title='%s']/@data-field and @data-rowid='%d']/ancestor::td/*"
  26. PARSE_FILED_ARGS_LOC = "(//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'TAB') and @class='k-content k-state-active']//*[@data-field=//th[@data-title='%s']/@data-field and @data-rowid='%d'])[%d]"
  27. CHECKBOX_FIELD_ARGS_LOC = "//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'TAB') and @class='k-content k-state-active']//div[@data-field=//th[@data-title='%s']/@data-field and @data-rowid='%d']"
  28. TEXT_FIELD_IN_BODY_HEAD_ARGS_LOC = "//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[text()= '%s']/../following-sibling::div[1]//input"
  29. BASE_FIELD_IN_BODY_HEAD_SPAN_ARGS_LOC = "//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[text()= '%s']/../following-sibling::div[1]//span[@class = 'ui-poplistedit-displayname']/preceding-sibling::input/following-sibling::span"
  30. BASE_FIELD_IN_BODY_HEAD_ARGS_LOC = "//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[text()= '%s']/../following-sibling::div[1]//span[@class = 'ui-poplistedit-displayname']/preceding-sibling::input"
  31. SELECT_FIELD_IN_BODY_HEAD_ARGS_LOC = "//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[text()= '%s']/../following-sibling::div[1]//span[@class = 'k-dropdown-wrap k-state-default']"
  32. TEXT_VALUE_IN_BODY_HEAD_ARGS_LOC = "(//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[text()= '%s']/../following-sibling::div[1]//*[self::span[@class = 'ui-poplistedit-displayname'] or self::input[not(//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[text()= '%s']/../following-sibling::div[1]//span[@class = 'ui-poplistedit-displayname'])]])[%d]"
  33. BASE_VALUE_IN_BODY_HEAD_ARGS_LOC = "(//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[text()= '%s']/../following-sibling::div[1]//span[@class = 'ui-poplistedit-displayname'])[%d]"
  34. SELECT_VALUE_IN_BODY_HEAD_ARGS_LOC = "(//div[contains(@id, '-FMAINTAB_c-') and contains(@class, 'k-content') and contains(@class, 'k-state-active')]//div[contains(@id, 'SPLITECONTAINER_last') and @splitter='two']//div[contains(@id, 'TAB') and @class='k-content k-state-active']//span[text()= '%s']/../following-sibling::div[1]//span[@class = 'k-dropdown-wrap k-state-default']/span[1])[%d]"