Archive

Archive for the ‘Мелочи’ Category

goBack()

Чтобы сделать в браузере “шаг назад”, надо написать команду:

execute script
window.history.back()

Это кажется раздражающе неочевидным, но это же обычный JavaScript. А там есть много всякого, если знать, что искать. Например:

  • window.history.back()
  • window.history.forward()

и много еще чего.

Categories: Мелочи, JavaScript

Selenium IDE снова в строю

1 September 2018 Leave a comment

Установить https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/

Разработка https://github.com/SeleniumHQ/selenium-ide

Firefox 61. Но есть и для Chrome.

Очевидно, что придётся заново перещупывать все команды.

Ну, и как всегда

Screenshot_20180901_234404

What’s new:

SIDE Runner

Can now run project files headlessly in command line

run

Use the run command to call tests from within tests.

link locator

link is deprecated in favor of linkText and partialLinkText, more info here.

Control Flow commands

You can now use conditional logic in your tests with commands if, else if, else, end, while, times, do, and repeat if.

assert and verify commands

Use the assert and verify commands to check the value of a variable against an expected value.

Categories: Мелочи

Удаление children pages в Confluence

10 October 2016 Leave a comment

Под родительской страницей 50 штук дочерних. Массовое удаление в силу ряда причин недоступно. Если удалить только родительскую страницу, дочерние останутся. Хочется экстерминировать всё семейство, но для этого надо заходить на каждую подстраницу и “убивать” ее персонально.

Название каждой подстраницы уникально, поэтому кликать по ссылке вроде бы затруднительно.

Но нет.

<tr>
    <td>label</td>
    <td>s</td>
    <td></td>
</tr>
<!--open next children page-->
<tr>
    <td>clickAndWait</td>
    <td>//div[@id='page-children' and @class='pageSectionBody children-loaded']/span[@class='child-display']/a</td>
    <td></td>
</tr>
<!--delete page-->
<tr>
    <td>click</td>
    <td>//a[@id='action-menu-link']/span/span</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>css=#action-remove-content-link &gt; span</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>id=confirm</td>
    <td></td>
</tr>
<tr>
    <td>gotolabel</td>
    <td>s</td>
    <td></td>
</tr>

Make it so.

Categories: Мелочи

Вырви историю из гугла

9 December 2014 2 comments

Skype:

— Привет! Ты уже удалил историю своих запросов из Гугла?

— Чего?

— В сша все нехило трекается. Например, я тут страховку для машины искал. Так мне домой стала почта приходить с предложениями. И я стал замечать какие уникальные finger prints собирает мой интернет банкинг. Это удобно отчасти, но неудобно, например, при поиске авиабилетов. Тебе увеличивают стоимость билета если ты часто ищешь. Поэтому я написал extension, который чистит твою google history с http://history.google.com У меня там сейчас 13000 запросов.

— [открыл, глянул, офигел] Нда, у меня там 6119 запросов…

— Дать тебе моего чистильщика?

— Я это и сам могу. [кляц-кляц] Готово. Четыре строчки. Понеслось, история отмирает на моих глазах 🙂

— А почему у тебя аж четыре строки? У меня их только три.

if (document.querySelectorAll(“input[name=del]”))
{ document.querySelector(“span.kd-button”).click();
document.querySelector(“input.kd-button”).click(); }

— Ну, у меня попроще, бесконечный цикл в Selenium IDE:

label | start
click | id=selector_top
clickAndWait | name=btnD
gotolabel | start

Categories: Мелочи

Moodle > Move down a topic

В Moodle топик надо скинуть в самый низ перечня тем (просто удалить невозможно). Для простоты переименую убиваемую тему в “deleted”.

Прежде всего – определяемая тема должна быть “подсвечена” как “текущая активная” (Highlight this topic as the current topic). Скрипт будет обрабатывать /li[@class=’section main clearfix current’], название темы вообще не имеет значения. Следовательно, тему придется сделать “видимой”, иначе сделать ей подсветку невозможно.

label go
clickAndWait //li[@class=’section main clearfix current’]/div[@class=’right side’]/a[@title=’Move down’]/
gotolabel go

Побегло до финиша. Когда тема окажется в самом низу, кнопка ‘Move down’ окажется нерабочей, скрипт остановится. Дописывать проверку наличия кнопки, и при ее отсутствии переходить к завершению скрипта считаю нецелесообразным.

В общем, скрипт нужно переделать, чтобы привязка происходила непосредственно к теме с определенным названием. Должно получиться что-то вроде //div[@class=’content’]/h3[contains(text(), ‘deleted’)]/../../div[@class=’content’]/../../li[@class=’section main clearfix current’]/div[@class=’right side’]/a[@title=’Move down’]/

Categories: Мелочи Tags:

И давай всех эндорсить

24 December 2012 4 comments

На LinkedIn есть прекрасная возможность тупо эндорсить (слово легко переводимое в приличном обществе, но блин!) всех в своем круге знакомств не глядя, нажатием на кнопку.

А после того, как заэндорсил знакомого, появляется предложение эндорсить (вот ведь слово блядское) сразу четверых знакомых, нажатием на кнопку ‘Endorse all 4″.

endorseThem

Кнопка эта хитрая: обычная команда click по ней не срабатывает.

Срабатывает следующий трюк:

listPagesInTableForSearchExpectedWord
label start
mouseDownAt css=button.btn-action.endorse-all-btn
click css=button.btn-action.endorse-all-btn
pause 1000
gotolabel start

Готово.

Можно эндорсить ВСЕХ своих знакомых, не глядя.

По завершению эндорсирования кнопка исчезнет ВНЕЗАПНО, поэтому стоит озаботиться тем, чтобы скрипт посредством постоянной проверки наличия кнопки завершил свою работу достойно.

Мелочи JavaScript жизни

12 June 2012 10 comments

Как выводить в алерте текст в двух уровнях?

<tr>
 <td>getEval</td>
 <td>alert(unescape('Первый ряд %0AВторой ряд'))</td>
 <td></td>
</tr>

Как сравнить между собой содержимое двух переменных?

Положить текст в две переменные (name1 & name2 в моем случае).
<td>assertEval</td>
<td>'${name1}'=='${name2}'</td>
<td>false</td>
</tr>

В переменную KTO_ZDES пришло какое-то буквенно-числовое значение (предположим, что туда может прийти или слово “Фирма”, или слово “Частное лицо”. Если пришло слово “Фирма”, тогда нужно выкинуть алерт со словом “Фирма”, иначе выкинуть алерт со словом “Частное лицо”.

<tr>
<td>storeEval</td>
<td>if (storedVars [‘KTO_ZDES’] == ‘Фирма’) {‘alertFirma’} else {‘alert4astnoeLitso’}</td>
<td>nextMove</td>
</tr>

Categories: Мелочи, JavaScript

Код с SeleniumCamp

26 February 2012 8 comments

Джентльмены.

На SeleniumCamp было отлично!

Есть видео моего выступления.

Мой рэп доклад прошел успешно, вовремя, нестандартно.

Докладывание доклада на SeleniumCamp

Докладывание доклада на SeleniumCamp

Принес домой футболку от SysIQ и презерватив от mail.ru (они на своем стенде их вместе с леденцами раздавали).

Леденец я своевременно сжевал…

В ходе доклада я продемонстрировал работоспособный пример того, как обычный тестировщик может зациклиться с прекрасным баг-трекером Mantis.

Код из этого примера – да вот же он.

Код обновлен – удаление текста вокруг цифры теперь делается через RegExp одним движением.

Спасибо Vera Berko!

Получил среди отзывов одно “дякувание за видповiдь”.

Алексей Баранцев прочитал эту “видповiдь” как “проповедь”. Ибо “программировать в таблицах в Selenium IDE – это явно сектантство 🙂

Не стал оправдываться, бо мэтр в чем-то прав.

Вступайте в нашу секту, от нас ближе к грамотной автоматизации веб-приложений!

Как заменить часть текста в строке

25 August 2011 8 comments
storeExpression http://site.ru/forumtopics/51.html n1
echo ${n1}
storeEval
javascript:{storedVars['n1'].replace("forum", "")}
n1
echo ${n1}

В общем, с помощью javascript:{storedVars[‘n1’].replace(“forum”, “”)} заменяем определенное буквосочетание на другое.

Если параметр “на что изменить” будет пустым, то произойдет не замена, а удаление текста.

PS Внимательно следим за правильностью отображения кавычек.

To decompile Java class in Eclipse

Разобрался, как в Eclipse смотреть код методов, закрытых в jar-файлах.
Нужен Java Decompiler Plugin For Eclipse IDE.

  1. Закрыть Eclipse.
  2. Скачать исполняемый файл jad.exe
    Источники:

  3. Файл положить в определенное место на вечное хранение.
  4. Скачать Jabclipse – плагин для Eclipse, представлен в виде jar-файла.  Положить этот jar-файл в каталог eclipse\plugins.
  5. Запустить Eclipse.
  6. Открыть ‘Window –> Preference –> Java –> Jadclipse’.
  7. В текстовом поле ‘Path to Decompiler’ руками вписать прямой путь на жестком диске к ранее скачанному ‘jad.exe’. Сохранить.
  8. Открыть на просмотр любой java class. Рулез!
Categories: Мелочи Tags: