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

Скрипт авторизации; создание локатора по xpath и css


(gorbunovrussia) #1

При написнаии простейшего тестового скрипта столкнулся с трудностью создания локатора "Войти" при авторизации на странице:

Используя Recording получил такой локатор:

command: clickandwait

target: id=aui_3_4_0_1_324

после начала теста селениум выдал ошибку:

[error] locator not found: id=aui_3_4_0_1_324


Просмотр кода страницы с данным элементом:

...

<div class="portlet-body">

<form id="_58_fm" class="aui-form yui3-widget aui-form-validator aui-form-validator-content aui-form-validator-focused" name="_58_fm" method="post" action="http://mais.citros.ru/home?p_auth=pMseF5pn&p_p_id=58&p_p_lifecycle=1&p_p_state=maximized&p_p_mode=view&saveLastPath=0&_58_struts_action=%2Flogin%2Flogin&_58_doActionAfterLogin=false">
<input id="_58_redirect" class="aui-field-input aui-field-input-text" type="hidden" value="" name="_58_redirect">
<fieldset class="aui-fieldset ">
<div class="aui-button-holder ">
<span class="aui-button aui-button-submit">
<span class="aui-button-content">
<input class="aui-button-input aui-button-input-submit" type="submit" value="Войти">
 
...
 
Насколько я понимаю, локатор надо задавать через xpath или css, дальше затупил, подскажите, пожлуйста, с созданием локатора.

 


(Vitalii) #2

Если посмотреть через firebug кнопку Войти, там можно взять ее класс.

Вот так работает.

target: //input[@class='aui-button-input aui-button-input-submit']


(Александр) #3

Да, надо искать по xpath. Вот записал ролик http://screencast.com/t/MtNxFvxT5jE

п/с Если что, обращайся в аську, сам только перелезаю с IDE на WebDriver


(gorbunovrussia) #4

Спасибо, ребята, за помощь, все суперски!


(JustBush) #5

 

        try:
            element2=driver.find_elements_by_xpath("//body[@id='gradient']/div[4]/div[2]")
            css=element2.getCssValue
            print css
        except: print "ne umeu nahodit css"
короче не выводит он мне css, я мб забыл импорт какой, или? подскажите плз

 


(Taras) #6

element2=driver.find_elements_by_xpath("//body[@id='gradient']/div[4]/div[2]")

 

ой та кто ж такой локатор то пишет))

сложно то как


(Mykhailo Poliarush) #7

привет, ты не правильно используешь метод

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

 

from selenium import webdriver
d = webdriver.Firefox()
d.get("http://google.com")
e = d.find_element_by_id("gbqfbb")
e.value_of_css_property("background-color")

(JustBush) #8

нет у локатора id, надо было быстро написать, есть имя класса,  но выдавал ошибку питон, спс за помощ