Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как выбрать непрочитаное письмо


(Halyna) #1

Помогите пожалуйста. У форме есть список писем. Письма в перемешку прочитанные и непрочитанние. Нужно со списка выбрать любое непрочитанное письмо. Внешне прочитанние и непрочитанное письмо нечем не отличается, разве что шрифтом. Непрочитанное письмо - жирним шрифтом, прочитанное - обыкновенным.

Сделала ето так, но ето слишком плоско, я как би уже указую которое письмо откривать, но оно может бить уже прочитанним. Мне потом еще надо поменять статус письма, но с етим я уже розобралась, а от как выбрать непрочитанное... 

 

 

<tr>
<td>open</td>
<td>/inbox</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=#notification-342 > a > span.list-title.inbox-subject</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='panel-inbox']/div[1]/div[2]/div/button</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//*[@id='change-status']/li[1]/a</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>css=span.label.label-success</td>
<td></td>
</tr>
 
 

(vmaximv) #2

Показывайте сорс страницы. И начинайте учить xpath...


(Artur Korobeynyk) #3

Ну я вообще не писал в хтмл формате тесты, но думаю и остальные со мной согласятся что код неинформативен. Подозреваю, что клик на непрочитанном письме - это событие ClickAndWait.

Вы упоминали что непрочитанные письма выделены жирным, значит у них есть либо определенный css стиль, либо они просто вставлены в <b></b> теги. Но скорее css. А значит у непрочитанных писем должен быть определенный класс html элемента. Значит можно использовать что-то вроде DOM функции getElementsByClassName или просто XPATH путь к классу. Первый найденый элемент и будет непрочитанное письмо.


(5am) #4

имхо - (тема в стиле Kristall89 :) с такой автоматизацией, вы далеко не уедете...

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

у div'a ?

<td>click</td>
<td>//div[@id='panel-inbox']/div[1]/div[2]/div/button</td>
<td></td>
в котром хранится письмо ? (я так понимаю выше - письмо), возможно есть какие либо доп аттрибуты заданные разработчиками ? (аля isRead и т.д.)

(Halyna) #5

Я только начала учить. Подскажите, если с такой автоматизацией далеко не уеду, тогда на какой  можна далеко уехать :) Хочу далеко уехать :)


(Halyna) #6

 

<div class="filter-list-view">
<div id="inbox-filter-list" class="filter-list">
<h3>Filter</h3>
<input id="inbox-search" class="search-query" type="text" placeholder="Filter List">
<div class="btn-group inbox-filter" data-status="non-archive" data-toggle="buttons-radio">
<a class="btn btn-mini active" data-status="non-archive">Unread &amp; Read</a>
<a class="btn btn-mini" data-status="archive">Archive</a>
</div>
<h3>Emails</h3>
<div id="filter-list-results">
<ul class="item-list">
<li id="notification-340" class="non-archive">
<a href="/inbox/340">
<span class="list-title inbox-subject">Dear...</span>
<span class="list-info inbox-date read">02-28-2013 11:37 AM</span>
<span class="list-info read">Dear...</span>
</a>
</li>
<li id="notification-342" class="non-archive">
<a href="/inbox/342">
<span class="list-title inbox-subject">Dear...</span>
<span class="list-info inbox-date new">02-28-2013 11:25 AM</span>
<span class="list-info new">Dear...</span>
</a>
</ul>
</div>
</div>
</div>
</div>

(5am) #7

так как вопрос задан в топике селениуму, то что могу посоветовать, думаю со мной согласятся многие - отказаться от рекордера и кхм... HTML автотестов (язык не поворачивается это назвать автотестом) использовать адекватные подходы к написанию тестов (Java/C#/Python/etc + XPath (он кажется мудренным и сложным по началу, но это только "на вид" надо только попробовать и остказаться будет не возможно ;) + PageObject/PageFactory по желанию)

есть же на этом сайте, в сети - множество докладов, статей, которые подходят даже начальному уровню (с очень базовым знанием ЯП). Найти свободные выходные (ну или в рабочее время - если есть возможность) и посмотреть доклады, попробовать на "гугле" написать простейшие тесты, будет не сложно, а в дальнейшем втянитесь и уже не сможете смотреть в сторону рекордера и прочих "не очень правильных" инстументов

первый написанный framework скорее всего выйдет "комом" но он в любом случаи будет более удобным для автоматизации тестирования, чем подобные решения, которые вы используете сейчас. А после как уже будет некий опыт, более глубокие познания в используемом ЯП, ООП, патернах, обхаженные грабли, написанные решения "костылями", изучением возможностей driver'a придет новый уровень "озарения" (назовем это так...) ;)

 

имхо: рекордер можно использовать, но если это автоматизация мануального тестировщика, на уровне - заполнить пару простеньких форм, отправить, посмотреть результат (например после деплоя новой версии продукта), но если брать автоматизацию, в каком русле она используется сейчас (а то есть, большое/smoke покрытие функционала тестируемого ПО) то ваши подходы, не подходят совсем.


(vmaximv) #8

По делу уже отписали. Если пару лет назад можно было выплывать на ide с " автолокаторами", то сейчас это не реально.
По сабжу xpath=//a[./*[contains(@class,‘new’)]]


(Halyna) #9

Большое всем спасибо!!!