Преди 2 седмици се заиграх с jMeter (статия планирам в близко бъдеще, супер интересен и мощен tool!) и се наложи да взема стойността на един hidden field, който е уникален за всяка потребителска сесия. Кода изглеждаше така:
<input name="form_key" type="hidden" value="PmIAQBj6jXqBIX8g" /> </pre> <input name="form_key" type="hidden" value="PmIAQBj6jXqBIX8g" /> <div id="authenticationPopup" style="display: none;" data-bind="scope:'authenticationPopup'"> <p id="find_result" class="result">А нужното поле, както можете да се досетите - value.</p> <p class="result">Между другото ако ви е интересно това е стандартна Magento 2 Enterprise инсталация.</p> </div> </div> И моя гениален ум просветна веднага - "Просто е, ще ползвам regular expression". Всеки е чувал за регулярните изрази и за техните полу-митични възможности - от взимане на стойност по определен набор от инструкции, validation, assertation и т.н. и т.н. Отворих бодро regexp-а на Java и след около 15 минути мозъка ми излезе в почивка. Оказа се, че не е чак толкова лесно, а като попаднах на този (по мое мнение грозен, бавен и неефикасен (според stackoverflow)) <a href="http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html">regexp за валидиране на mail addresses</a> ми се схвана душата. За радост тулове много, а добра работа ми свърши <a href="http://java-regex-tester.appspot.com/">http://java-regex-tester.appspot.com/</a>. Решението на задачата е просто и изглежда по този начин: <pre>[code](?<=value\=\")([a-zA-Z0-9]*)
Резултата по по-ясен начин го има и тук като можете да си поиграете със структурата и израза и да го прогодите за свои цели.
Сигурно се питате защо “порно за мозъци”? Много просто – търсенето и експериментирането с такъв набор от инструменти се оказа интересна задача и макар за някои да е елементарна за моя пръв сблъсък ми беше на ръба да изям клавиатурата.