t.me/atinfo_chat Telegram группа по автоматизации тестирования

пример UI маппинга на Python


(Mykhailo Poliarush) #1


А не могли бы вы привести пример UI маппинга на Python? Хочеться увидеть именно пример кода, так как код на Java я видел, а вот как реализовать подобное на Pythone пока не придумал.


(Mykhailo Poliarush) #2

я использую второй вариант, потому как хочу чтобы локаторы были вместе с описанием страницы


(Taras) #3

Можете обьяснить более менее что такое маппинг ?))) Извините, нету опіта в єтом, а знать хочеться всЕ))


(andriy.bench) #4

Большое СПАСИБО!


(Mykhailo Poliarush) #5

первый пример, просто с использованием переменных

{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }class ResultsTextElement(Text): login = "//a[@login]" pass = "//a@pass]"{/syntaxhighlighter}

второй, пример с использованием листа

{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }locators = { "collar style": 'css=a[title="REPLACE"]', "results": 'css=.count', "throbber": 'id=PreferenceThrob' }

class ResultsTextElement(Text):

def __init__(self):
self.locator = locators["results"]{/syntaxhighlighter}<p>третий, с вынесением в yaml формат</p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }page:
login: //a[@login]
password: //a[@pass]

{/syntaxhighlighter}{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; } def read_yaml_file(self,file_name = “…/conf/conf.yaml”):
stream = file(file_name, ‘r’)
return yaml.load(stream)

def some_method(self):
conf = self.read_yaml_file()[‘page’]
print conf[‘login’]
{/syntaxhighlighter}


(Mykhailo Poliarush) #6

это указание связи между одной сущностью и другой.

допустим у вас есть елемент <a href="pass">

вы обращаетесь к этому элементу через конструкцию, например в питоне driver.find_element_by_xapth("//a[@href='xpath']")

такой вызов кода происходит в 1000 файлах, потому у вас появиться хотелка вынести один локатор в одно место

{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }password = "//a[@href='xpath']"

… some file
driver.find_element_by_xapth(password)

… some file
driver.find_element_by_xapth(password)

… some file
driver.find_element_by_xapth(password){/syntaxhighlighter}

так вот password = “//a[@href=‘xpath’]” и есть маппинг между одной сущностью в html и одной сущностью в коде 


(Taras) #7

что то типа хардкода локаторов ? Я свой парсер юзаю в таком случае)


(Mykhailo Poliarush) #8

>>что то типа хардкода локаторов ?

ну что-то на это похоже