-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathrss.xml
More file actions
2792 lines (2757 loc) · 484 KB
/
Copy pathrss.xml
File metadata and controls
2792 lines (2757 loc) · 484 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Selenide: лаконичные и стабильные UI тесты на Java on Selenide</title><link>https://ru.selenide.org/</link><description>Recent content in Selenide: лаконичные и стабильные UI тесты на Java on Selenide</description><generator>Hugo</generator><language>ru</language><managingEditor>andrei.solntsev@gmail.com (Andrei Solntsev)</managingEditor><webMaster>andrei.solntsev@gmail.com (Andrei Solntsev)</webMaster><lastBuildDate>Sun, 12 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ru.selenide.org/rss.xml" rel="self" type="application/rss+xml"/><item><title>Вышла Selenide 7.17.0</title><link>https://ru.selenide.org/2026/07/12/selenide-7.17.0/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2026/07/12/selenide-7.17.0/</guid><description><p>Буэнос приветос!</p>
<p>Отвлекитесь на секундочку от футбола и зацените, какой у нас тут релиз подъехал:<br>
<a href="https://github.com/selenide/selenide/milestone/242?closed=1">Selenide 7.17.0</a>!</p>
<br>
<p>Наконец-то завезли локатор <code>byRole</code>!</p>
<ul>
<li><a href="https://ru.selenide.org/2026/07/12/selenide-7.17.0/#by-role-locator">Локатор <code>byRole</code> — поиск элемента по ARIA-роли</a></li>
<li><a href="https://ru.selenide.org/2026/07/12/selenide-7.17.0/#more-mcp-tools">Ещё MCP-тулзов для вашего ИИ-раба!</a></li>
<li><a href="https://ru.selenide.org/2026/07/12/selenide-7.17.0/#download-multiple-files">Скачивание нескольких файлов разом</a></li>
<li><a href="https://ru.selenide.org/2026/07/12/selenide-7.17.0/#appium-element-return-type">Типа типы SelenideAppiumElement</a></li>
<li><a href="https://ru.selenide.org/2026/07/12/selenide-7.17.0/#cookies-api"><code>Selenide.cookies()</code> — новый API для печенек</a></li>
<li><a href="https://ru.selenide.org/2026/07/12/selenide-7.17.0/#element-aliases-kotlin"><code>element()</code>/<code>elements()</code> для котлин-разработчиков в Appium</a></li>
<li><a href="https://ru.selenide.org/2026/07/12/selenide-7.17.0/#update-to-selenium-4.46.0">Обновили Selenium с 4.44.0 на 4.46.0</a></li>
</ul>
<br>
<h3 id="by-role-locator">Локатор <code>byRole</code> — поиск элемента по ARIA-роли</h3>
<p>В последнее время стали модными &ldquo;accessibility locators&rdquo;.</p></description></item><item><title>Вышла Selenide 7.16.2</title><link>https://ru.selenide.org/2026/05/27/selenide-7.16.2/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2026/05/27/selenide-7.16.2/</guid><description><p>Утро доброе!</p>
<p>Скоро будет большой релиз 7.17.0, а пока ловите апдейт -
<a href="https://github.com/selenide/selenide/milestone/241?closed=1">Selenide 7.16.2</a>!</p>
<ul>
<li><a href="https://ru.selenide.org/2026/05/27/selenide-7.16.2/#selenide-mcp-parameters">Параметры для Selenide MCP server</a></li>
<li><a href="https://ru.selenide.org/2026/05/27/selenide-7.16.2/#update-to-selenium-4.44.0">Обновили Selenium с 4.43.0 на 4.44.0</a></li>
<li><a href="https://ru.selenide.org/2026/05/27/selenide-7.16.2/#file-download-improvements">Мелочи при скачивании файлов</a></li>
</ul>
<br>
<h3 id="selenide-mcp-parameters">Параметры для Selenide MCP server</h3>
<p>Теперь нашему MCP серверу можно задавать разные там всякие параметры. Например, URL грида или размер окна браузера.</p>
<p>Параметры задаются в том же самом файлике <code>.mcp.json</code>, в котором вы обычно прописываете MCP:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&#34;mcpServers&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&#34;selenide-mcp&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&#34;command&#34;</span><span class="p">:</span> <span class="s2">&#34;npx&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&#34;args&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="cl"> <span class="s2">&#34;selenide-mcp&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="s2">&#34;--browser=chrome&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="s2">&#34;--remote=http://selenium-hub:4444/wd/hub&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="p">]</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>Полный список параметров можно найти в <a href="https://github.com/selenide/selenide/blob/main/modules/mcp/README.md">README</a>.</p></description></item><item><title>Вышла Selenide 7.16.0</title><link>https://ru.selenide.org/2026/04/10/selenide-7.16.0/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2026/04/10/selenide-7.16.0/</guid><description><p>Привет!</p>
<p>Кому пятничный релиз <a href="https://github.com/selenide/selenide/milestone/239?closed=1">Selenide 7.16.0</a>?</p>
<blockquote>
<p>Целая цивилизация олдскульных ручных тестописцев погибнет сегодня вечером и больше никогда не возродится.
Я не хочу, чтобы это произошло, и мне жаль этих медленных парней, но, вероятно, так и будет.</p>
</blockquote>
<ul>
<li><a href="https://ru.selenide.org/2026/04/10/selenide-7.16.0/#selenide-mcp-server">Selenide MCP server</a></li>
<li><a href="https://ru.selenide.org/2026/04/10/selenide-7.16.0/#websockets-in-selenide-proxy">Запилили вебсокеты в селенидовском прокси</a></li>
<li><a href="https://ru.selenide.org/2026/04/10/selenide-7.16.0/#fix-searching-element-by-label">Поиск элемента по label</a></li>
<li><a href="https://ru.selenide.org/2026/04/10/selenide-7.16.0/#fix-cdp-download-with-multiple-tabs">CDP download в нескольких вкладках</a></li>
<li><a href="https://ru.selenide.org/2026/04/10/selenide-7.16.0/#handling-alerts-in-firefox">Алерты в Firefox</a></li>
<li><a href="https://ru.selenide.org/2026/04/10/selenide-7.16.0/#form-resubmission-confirmation-dialog-in-firefox">Выключили &ldquo;form resubmission confirmation dialog&rdquo; в Firefox</a></li>
<li><a href="https://ru.selenide.org/2026/04/10/selenide-7.16.0/#ancestor-with-multiple-class-names"><code>$.ancestor()</code> с несколькими классами</a></li>
<li><a href="https://ru.selenide.org/2026/04/10/selenide-7.16.0/#video-recorder-for-custom-webdriver">Видео рекордер с кастомным вебдрайвером</a></li>
<li><a href="https://ru.selenide.org/2026/04/10/selenide-7.16.0/#gaps-in-recorded-videos">Разрывы в записанных видео</a></li>
<li><a href="https://ru.selenide.org/2026/04/10/selenide-7.16.0/#update-to-selenium-4.43.0">Обновили Selenium с 4.41.0 на 4.43.0</a></li>
</ul>
<br>
<h3 id="selenide-mcp-server">Selenide MCP server</h3>
<p>Дожили!</p></description></item><item><title>Вышла Selenide 7.15.0</title><link>https://ru.selenide.org/2026/03/11/selenide-7.15.0/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2026/03/11/selenide-7.15.0/</guid><description><p>Привет!</p>
<p>У нас вышел релиз <a href="https://github.com/selenide/selenide/milestone/237?closed=1">Selenide 7.15.0</a>!</p>
<blockquote>
<p>Буквально несколько минут назад мы начали Операцию “Эпическая Ява”.<br>
Огромный новый релиз нашей Java-библиотеки.<br>
Никто не делает Java-библиотеки так, как мы. Никто.<br>
Мы исправили баги. Мы уничтожили медленный код. Полностью.<br>
А производительность? Потрясающая производительность. Лучшая из всех, что вы когда-либо видели.</p>
</blockquote>
<ul>
<li><a href="https://ru.selenide.org/2026/03/11/selenide-7.15.0/#skip-downloading-file-content">Скачивать файл без контента</a></li>
<li><a href="https://ru.selenide.org/2026/03/11/selenide-7.15.0/#chrome-driver-in-remote-debugger-mode">Chrome driver в режиме &ldquo;remote debugger&rdquo;</a></li>
<li><a href="https://ru.selenide.org/2026/03/11/selenide-7.15.0/#take-screenshot-even-if-cdp-is-disabled">Скриншоты в Хроме, когда CDP выключен</a></li>
<li><a href="https://ru.selenide.org/2026/03/11/selenide-7.15.0/#limit-execution-time-of-all-commands">Ограничили время выполнения всех команд</a></li>
<li><a href="https://ru.selenide.org/2026/03/11/selenide-7.15.0/#fix-video-size-when-browser-size-has-been-changing">Размер видео, когда окно браузера менялось в течение теста</a></li>
<li><a href="https://ru.selenide.org/2026/03/11/selenide-7.15.0/#or-condition-for-missing-elements">Условие &ldquo;OR&rdquo; для исчезнувших элементов</a></li>
<li><a href="https://ru.selenide.org/2026/03/11/selenide-7.15.0/#update-to-selenium-4.41.0">Обновили Selenium с 4.40.0 на 4.41.0</a></li>
<li><a href="https://ru.selenide.org/2026/03/11/selenide-7.15.0/#links">Ссылки</a></li>
</ul>
<br>
<h3 id="skip-downloading-file-content">Скачивать файл без контента</h3>
<p>В селениде есть метод <code>$.download()</code>, позволяющий из теста скачать файл. Обычно это стоит делать для того, чтобы
проверить название и содержимое скачанного файла. Или хотя бы формат (pdf/xls/csv/&hellip;).</p></description></item><item><title>Вышла Selenide 7.14.0</title><link>https://ru.selenide.org/2026/01/21/selenide-7.14.0/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2026/01/21/selenide-7.14.0/</guid><description><p>Привет!</p>
<p>У нас вышел релиз <a href="https://github.com/selenide/selenide/milestone/236?closed=1">Selenide 7.14.0</a>!</p>
<blockquote>
<p>У нас есть практически концепция релиза.</p>
<p>Я думаю, что это будет очень выгодный релиз для Селенида, а также для вас самих.</p>
</blockquote>
<ul>
<li><a href="https://ru.selenide.org/2026/01/21/selenide-7.14.0/#download-files-with-space">Исправили скачивание файлов с пробелом в имени</a></li>
<li><a href="https://ru.selenide.org/2026/01/21/selenide-7.14.0/#grid-behind-time-download">Исправили скачивание файлов с грида, который отстаёт на 1 секунду</a></li>
<li><a href="https://ru.selenide.org/2026/01/21/selenide-7.14.0/#fail-fast-for-selenium-grid">increment timeout для грида</a></li>
<li><a href="https://ru.selenide.org/2026/01/21/selenide-7.14.0/#forbid-removing-selenide-own-proxy-filters">Запретили удалять внутренние прокси-фильтры Селенида</a></li>
<li><a href="https://ru.selenide.org/2026/01/21/selenide-7.14.0/#remove-all-request-or-response-filters-separately">Удалить все реквест-фильтры (или все респонс-фильтры)</a></li>
<li><a href="https://ru.selenide.org/2026/01/21/selenide-7.14.0/#mask-type-value">Добавили метод для маскировки значений</a></li>
<li><a href="https://ru.selenide.org/2026/01/21/selenide-7.14.0/#export-video-recorder">Видео рекордер можно использовать без Селенида</a></li>
<li><a href="https://ru.selenide.org/2026/01/21/selenide-7.14.0/#shorten-format-of-timeouts">Сократили формат таймаутов в ошибках и логах</a></li>
<li><a href="https://ru.selenide.org/2026/01/21/selenide-7.14.0/#update-to-selenium-4.40.0">Обновили Selenium с 4.39.0 на 4.40.0</a></li>
</ul>
<br>
<h3 id="download-files-with-space">Исправили скачивание файлов с пробелом в имени</h3>
<p>Ну это классика.</p></description></item><item><title>Вышла Selenide 7.13.0</title><link>https://ru.selenide.org/2025/12/14/selenide-7.13.0/</link><pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/12/14/selenide-7.13.0/</guid><description><p>Привет, мерзляки!</p>
<p>У нас вышел релиз <a href="https://github.com/selenide/selenide/milestone/235?closed=1">Selenide 7.13.0</a>, начинаем анбоксинг!</p>
<br>
<ul>
<li><a href="https://ru.selenide.org/2025/12/14/selenide-7.13.0/#improve-file-downloading-from-grid">Смачно забафали скачивание файлов из Selenium Grid</a></li>
<li><a href="https://ru.selenide.org/2025/12/14/selenide-7.13.0/#fail-fast-if-download-link-not-found">Скачивание файла не ждёт слишком долго, если ссылка не найдена</a></li>
<li><a href="https://ru.selenide.org/2025/12/14/selenide-7.13.0/#mask-credentials-in-remote-url">Маскируем пароли в URL облака</a></li>
<li><a href="https://ru.selenide.org/2025/12/14/selenide-7.13.0/#proxy-cleanup-filters">Добавили метод <code>proxy.cleanupFilters()</code></a></li>
<li><a href="https://ru.selenide.org/2025/12/14/selenide-7.13.0/#remove-response-size-watchdog">Удалили ворнинг о размере респонса</a></li>
<li><a href="https://ru.selenide.org/2025/12/14/selenide-7.13.0/#add-prefix-to-selenide-own-filters">Добавили префикс селенидовским прокси фильтрам</a></li>
<li><a href="https://ru.selenide.org/2025/12/14/selenide-7.13.0/#fix-frame-rate-for-video">Пофиксили рассинхрон видео</a></li>
<li><a href="https://ru.selenide.org/2025/12/14/selenide-7.13.0/#update-to-selenium-4.39.0">Обновили Selenium с 4.38.0 на 4.39.0</a></li>
</ul>
<br>
<h3 id="improve-file-downloading-from-grid">Смачно забафали скачивание файлов из Selenium Grid</h3>
<p>В селениде есть метод <code>$.download()</code>, который скачивает в браузере и возвращает этот файл.
Полезно для тестирования всяких там отчётов, экселек, пдфок и тому подобного.</p></description></item><item><title>Вышла Selenide 7.12.0</title><link>https://ru.selenide.org/2025/10/29/selenide-7.12.0/</link><pubDate>Wed, 29 Oct 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/10/29/selenide-7.12.0/</guid><description><p>Остановись, мгновение!</p>
<p>Вышел уже второй релиз в октябре <a href="https://github.com/selenide/selenide/milestone/229?closed=1">Selenide 7.12.0</a>, успеть бы обновиться!</p>
<blockquote>
<p>Мне не передать словами весь спектр чувств…</p>
<p>Когда ты каждый месяц пилишь чего-то там, релизишь, и вдруг видишь, что люди читают релиз ноутсы, обновляются —<br>
это ли не лучшая награда?</p>
</blockquote>
<br>
<ul>
<li><a href="https://ru.selenide.org/2025/10/29/selenide-7.12.0/#screenshots-with-devtools">Скриншоты с помощью DevTools/BiDi</a></li>
<li><a href="https://ru.selenide.org/2025/10/29/selenide-7.12.0/#by-label">Новый локатор <code>byLabel</code></a></li>
<li><a href="https://ru.selenide.org/2025/10/29/selenide-7.12.0/#new-locators">Новые локаторы <code>byPlaceholder</code>, <code>byTitle</code>, <code>byAltText</code></a></li>
<li><a href="https://ru.selenide.org/2025/10/29/selenide-7.12.0/#by-test-id">Новый локатор <code>byTestId</code></a></li>
<li><a href="https://ru.selenide.org/2025/10/29/selenide-7.12.0/#mobile-emulation">Эмуляция мобильника</a></li>
<li><a href="https://ru.selenide.org/2025/10/29/selenide-7.12.0/#browser-logs-with-bidi">Логи браузера с помощью DevTools/BiDi</a></li>
<li><a href="https://ru.selenide.org/2025/10/29/selenide-7.12.0/#shadow-host-as-context">Можно искать прямо в shadow host <code>byShadowCss</code></a></li>
<li><a href="https://ru.selenide.org/2025/10/29/selenide-7.12.0/#unhighlight">Новый метод <code>$.unhighlight()</code></a></li>
<li><a href="https://ru.selenide.org/2025/10/29/selenide-7.12.0/#update-to-selenium-4.38.0">Обновили Selenium с 4.36.0 на 4.38.0</a></li>
</ul>
<br>
<h3 id="screenshots-with-devtools">Скриншоты с помощью DevTools/BiDi</h3>
<p>Теперь Селенид для снятия скриншотов использует не стандартный вебдрайверовский метод, а DevTools (в хроме) или BiDi (в фаерфоксе).
Во время <a href="https://ru.selenide.org/2025/08/20/selenide-7.10.0/#take-screenshots-using-bidi-or-devtools">работы над видео рекордером</a> мы заметили, что этот способ</p></description></item><item><title>Вышла Selenide 7.11.1</title><link>https://ru.selenide.org/2025/10/04/selenide-7.11.1/</link><pubDate>Sat, 04 Oct 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/10/04/selenide-7.11.1/</guid><description><p>Добреньки, пановне да паночки!</p>
<p>Я с благими вестями:
давеча нарелизили мы <a href="https://github.com/selenide/selenide/milestone/230?closed=1">Selenide 7.11.1</a>.</p>
<blockquote>
<p>Вы уже пять с половиной недель пилите бессмысленный релиз, для которого настоящей мощной команде потребовалось бы менее недели.
Это нисколько не украшает проект.<br>
Знаете, вы выглядите неважно.<br>
Вы бумажный тигр?</p>
</blockquote>
<p>Да, изменения больше внутренние да технические. Но кое-что сломаться можно и у вас. ;)</p>
<ul>
<li><a href="https://ru.selenide.org/2025/10/04/selenide-7.11.1/#disable-smooth-scrolling-by-default">Выключаем плавную прокрутку</a></li>
<li><a href="https://ru.selenide.org/2025/10/04/selenide-7.11.1/#fix-augmenter-usages">Исправили использование <code>Augmenter</code></a></li>
<li><a href="https://ru.selenide.org/2025/10/04/selenide-7.11.1/#custom-screenshot-laboratory">Порефакторили <code>ScreenShotLaboratory</code></a></li>
<li><a href="https://ru.selenide.org/2025/10/04/selenide-7.11.1/#remove-workaround-for-host-identifier">Удалили хак для <code>HostIdentifier</code></a></li>
<li><a href="https://ru.selenide.org/2025/10/04/selenide-7.11.1/#publish-jars-without-signing">Публикуйте джарники без подписи</a></li>
<li><a href="https://ru.selenide.org/2025/10/04/selenide-7.11.1/#update-to-selenium-4.36.0">Обновили Selenium с 4.35.0 на 4.36.0</a></li>
<li><a href="https://ru.selenide.org/2025/10/04/selenide-7.11.1/#update-to-junit-6.0.0">Обновили JUnit с 5.x до 6.0.0</a></li>
</ul>
<br>
<h3 id="disable-smooth-scrolling-by-default">Выключаем плавную прокрутку</h3>
<p>Иногда тесты могут <a href="https://www.youtube.com/watch?v=zOiSo1hYjF8">флакать</a> из-за того, что пытаются кликнуть какой-то элемент - а он движется.
Движется из-за того, что дизайном предусмотрена плавная прокрутка (&ldquo;smooth scrolling&rdquo;).</p></description></item><item><title>Вышла Selenide 7.10.0</title><link>https://ru.selenide.org/2025/08/20/selenide-7.10.0/</link><pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/08/20/selenide-7.10.0/</guid><description><p>Head õhtut!</p>
<p>20 августа у Эстонии второй день рождения - День Восстановления Независимости.</p>
<p>По традиции, в честь праздника мы бахнули релизец <a href="https://github.com/selenide/selenide/milestone/227?closed=1">Selenide 7.10.0</a>.</p>
<p>Теперь это второй день рождения и у нашего видео рекордера! (его прям сильно переделали)</p>
<ul>
<li><a href="https://ru.selenide.org/2025/08/20/selenide-7.10.0/#speed-up-video-recorder">Ускорили видео рекордер</a></li>
<li><a href="https://ru.selenide.org/2025/08/20/selenide-7.10.0/#take-screenshots-using-bidi-or-devtools">Скриншоты для видео рекордера через BiDi или DevTools</a></li>
<li><a href="https://ru.selenide.org/2025/08/20/selenide-7.10.0/#scroll-with-options">Скроллинг с опциями <code>$.scrollIntoView(options)</code></a></li>
<li><a href="https://ru.selenide.org/2025/08/20/selenide-7.10.0/#static-methods-for-containers-initialization">Статические методы для создания контейнеров</a></li>
<li><a href="https://ru.selenide.org/2025/08/20/selenide-7.10.0/#deep-shadow-annotation">Аннотация <code>@DeepShadow</code></a></li>
<li><a href="https://ru.selenide.org/2025/08/20/selenide-7.10.0/#validate-increment-timeout">Валидация <code>incrementTimeout</code></a></li>
<li><a href="https://ru.selenide.org/2025/08/20/selenide-7.10.0/#update-to-selenium-4.35.0">Обновили Selenium с 4.34.0 на 4.35.0</a></li>
</ul>
<br>
<h3 id="speed-up-video-recorder">Ускорили видео рекордер</h3>
<p>В первых версиях видео рекордера мы использовали библиотеку <code>org.bytedeco:javacv</code>, чтобы сливать все снятые скриншоты в видео файл.</p></description></item><item><title>Вышла Selenide 7.9.4</title><link>https://ru.selenide.org/2025/07/05/selenide-7.9.4/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/07/05/selenide-7.9.4/</guid><description><p>Приветули!</p>
<p>Я понимаю, июль, жара, не до работы. Но обновиться на <a href="https://github.com/selenide/selenide/milestone/226?closed=1">Selenide 7.9.4</a> надо.</p>
<ul>
<li><a href="https://ru.selenide.org/2025/07/05/selenide-7.9.4/#update-to-selenium-4.34.0">Обновили Selenium с 4.33.0 на 4.34.0</a></li>
<li><a href="https://ru.selenide.org/2025/07/05/selenide-7.9.4/#fix-colors-in-video-recorder-in-firefox">Исправили цвета в видео рекордере в Firefox</a></li>
<li><a href="https://ru.selenide.org/2025/07/05/selenide-7.9.4/#change-return-type-to-selenide-appium-element">Изменили тип элемента на <code>SelenideAppiumElement</code> в мобильных методах</a></li>
<li><a href="https://ru.selenide.org/2025/07/05/selenide-7.9.4/#replace-context-aware">Заменили <code>ContextAware</code> на <code>SupportsContextSwitching</code></a></li>
<li><a href="https://ru.selenide.org/2025/07/05/selenide-7.9.4/#news">Новости</a></li>
</ul>
<br>
<h3 id="update-to-selenium-4.34.0">Обновили Selenium с 4.33.0 на 4.34.0</h3>
<p>И подняли версию CDP с v137 до v138.<br>
И заодно ещё обновили Appium с 9.4.0 до 9.5.0</p>
<p>Чертовски невероятно!</p>
<p>См. <a href="https://github.com/selenide/selenide/pull/3059">PR 3059</a></p>
<br>
<h3 id="fix-colors-in-video-recorder-in-firefox">Исправили цвета в видео рекордере в Firefox</h3>
<p>Недавно мы уже <a href="https://ru.selenide.org/2025/05/08/selenide-7.9.2/#fix-color-on-video">исправляли цвета в видео рекордере</a>, но оказалось, что исправили их во всех браузерах, кроме Firefox.</p></description></item><item><title>Вышла Selenide 7.9.3</title><link>https://ru.selenide.org/2025/05/27/selenide-7.9.3/</link><pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/05/27/selenide-7.9.3/</guid><description><p>Даров!</p>
<p>Пока не началось лето, вы успеваете ещё обновиться на <a href="https://github.com/selenide/selenide/milestone/225?closed=1">Selenide 7.9.3</a>.</p>
<ul>
<li><a href="https://ru.selenide.org/2025/05/27/selenide-7.9.3/#update-to-selenium-4.33.0">Обновили Selenium с 4.32.0 на 4.33.0</a></li>
<li><a href="https://ru.selenide.org/2025/05/27/selenide-7.9.3/#click-holding-left-keys">Клик с нажатыми левыми клавишами</a></li>
<li><a href="https://ru.selenide.org/2025/05/27/selenide-7.9.3/#fix-bug-with-focus-in-set-value">Исправили баг с фокусом в <code>$.setValue</code></a></li>
<li><a href="https://ru.selenide.org/2025/05/27/selenide-7.9.3/#fix-page-object-initialization-without-webdriver">Исправили ленивую инициализацию пэдж обжектов</a></li>
<li><a href="https://ru.selenide.org/2025/05/27/selenide-7.9.3/#fix-condition-texts-in-any-order">Исправили проверку &ldquo;texts in any order&rdquo; в режиме <code>FULL_TEXT</code></a></li>
</ul>
<br>
<h3 id="update-to-selenium-4.33.0">Обновили Selenium с 4.32.0 на 4.33.0</h3>
<p>И подняли версию CDP с v136 до v137. С ума сойти, как это круто!</p>
<p>См. <a href="https://github.com/selenide/selenide/pull/3034">PR 3034</a></p>
<br>
<h3 id="click-holding-left-keys">Клик с нажатыми левыми клавишами</h3>
<p><a href="https://ru.selenide.org/2025/04/19/selenide-7.9.0/#click-holding-keys">Недавно</a> мы запилили клик через JS с нажатой кнопкой <code>ALT</code>, <code>CTRL</code>, <code>SHIFT</code> или <code>META</code>.</p></description></item><item><title>Вышла Selenide 7.9.2</title><link>https://ru.selenide.org/2025/05/08/selenide-7.9.2/</link><pubDate>Thu, 08 May 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/05/08/selenide-7.9.2/</guid><description><p>Приветушки!</p>
<p>Из трубы пошёл белый дым, а всё потому, что конклав решил зарелизить <a href="https://github.com/selenide/selenide/milestone/224?closed=1">Selenide 7.9.2</a>.</p>
<ul>
<li><a href="https://ru.selenide.org/2025/05/08/selenide-7.9.2/#fix-color-on-video">Исправили цвета на видео</a></li>
<li><a href="https://ru.selenide.org/2025/05/08/selenide-7.9.2/#optimize-video-recorder">Оптимизировали видео рекордер</a></li>
<li><a href="https://ru.selenide.org/2025/05/08/selenide-7.9.2/#attach-video-recordings">Аттач видео файлов</a></li>
<li><a href="https://ru.selenide.org/2025/05/08/selenide-7.9.2/#update-to-selenium-4.32.0">Обновились на Selenium 4.32.0</a></li>
<li><a href="https://ru.selenide.org/2025/05/08/selenide-7.9.2/#fix-class-cast-in-selenide-appium">Исправили ClassCastException</a></li>
<li><a href="https://ru.selenide.org/2025/05/08/selenide-7.9.2/#improve-loops-performance">Слегка улучшили производительность циклов</a></li>
</ul>
<br>
<h3 id="fix-color-on-video">Исправили цвета на видео</h3>
<p>В ноябре мы добавили в селенид <a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#video-recorder">видео рекордер</a>.
Это офигенно полезная фича для <a href="https://www.youtube.com/watch?v=4Kh5yppP8zY&amp;ab_channel=DEVCLUB.EU">отладки тестов</a>, но в сгенерированных видосиках обнаружился брак с цветами.</p>
<h4 id="до">До</h4>
<p>Слева - оригинальная веб-страничка, справа - как она выглядела на видео:</p></description></item><item><title>Вышла Selenide 7.9.0</title><link>https://ru.selenide.org/2025/04/19/selenide-7.9.0/</link><pubDate>Sat, 19 Apr 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/04/19/selenide-7.9.0/</guid><description><p>Ну здорово, квадроберы!</p>
<p>У нас тут вышла версия <a href="https://github.com/selenide/selenide/milestone/222?closed=1">Selenide 7.9.0</a>.</p>
<ul>
<li><a href="https://ru.selenide.org/2025/04/19/selenide-7.9.0/#screenshots-as-attachment">Прикрепляем скриншоты в отчёт Jenkins и GitLab</a></li>
<li><a href="https://ru.selenide.org/2025/04/19/selenide-7.9.0/#click-holding-keys">Клик с нажатыми клавишами</a></li>
<li><a href="https://ru.selenide.org/2025/04/19/selenide-7.9.0/#update-to-selenium-4.31.0">Обновились на Selenium 4.31.0</a></li>
<li><a href="https://ru.selenide.org/2025/04/19/selenide-7.9.0/#check-for-empty-expected-value">Проверка на пустой текст/значение</a></li>
</ul>
<p>Сами понимаете, пошлины в 104% на импорт новых фич ¯¯_(ツ)_/¯¯</p>
<br>
<h3 id="screenshots-as-attachment">Прикрепляем скриншоты в отчёт Jenkins и GitLab</h3>
<p>Когда вы запускаете тесты, Селенид автоматические <a href="https://ru.selenide.org/documentation/screenshots.html">сохраняет скриншоты</a>.</p>
<p>Путь к скриншоту добавляется в сообщение об ошибке. Это очень удобно при локальном запуске, но когда тесты запускаются
на Gitlab, GitHub Actions или Jenkins, надо ещё как-то эти файлы сохранить (архивировать, загрузить артефакты и т.п.)</p></description></item><item><title>Вышла Selenide 7.8.0</title><link>https://ru.selenide.org/2025/04/02/selenide-7.8.0/</link><pubDate>Wed, 02 Apr 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/04/02/selenide-7.8.0/</guid><description><p>Mi amore, mi amore!</p>
<p>Сегодня вечером мой <em>экстра</em> зарелизил <a href="https://github.com/selenide/selenide/milestone/220?closed=1">Selenide 7.8.0</a>.</p>
<p>Интересно, мой <em>интра</em> завтра утром откроет этот текст и узнает ли про новые возможности в Selenide?</p>
<ul>
<li><a href="https://ru.selenide.org/2025/04/02/selenide-7.8.0/#new-appium-functions">Новые функции для Appium</a></li>
<li><a href="https://ru.selenide.org/2025/04/02/selenide-7.8.0/#remove-proxy-listeners">Удалять фильтры из прокси</a></li>
<li><a href="https://ru.selenide.org/2025/04/02/selenide-7.8.0/#shadow-host-in-page-objects">Аннотация <code>@ShadowHost</code></a></li>
<li><a href="https://ru.selenide.org/2025/04/02/selenide-7.8.0/#improve-combined-attributes-in-reports">Комбинированные атрибуты в отчётах</a></li>
<li><a href="https://ru.selenide.org/2025/04/02/selenide-7.8.0/#upgrade-to-selenium-4.30.0">Обновились на Selenium 4.30.0</a></li>
<li><a href="https://ru.selenide.org/2025/04/02/selenide-7.8.0/#news">Новости</a></li>
</ul>
<br>
<h3 id="new-appium-functions">Новые функции для Appium</h3>
<p>Для фанатов мобилок мы добавили три функции:</p>
<ul>
<li>активировать приложение,</li>
<li>остановить приложение,</li>
<li>перезапустить приложение.</li>
</ul>
<p>Все эти методы можете найти в классе <code>SelenideAppium</code>:</p></description></item><item><title>Вышла Selenide 7.7.0</title><link>https://ru.selenide.org/2025/01/07/selenide-7.7.0/</link><pubDate>Tue, 07 Jan 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/01/07/selenide-7.7.0/</guid><description><p>Всех с Новым Годом!</p>
<p>Мы начали год с релиза <a href="https://github.com/selenide/selenide/milestone/216?closed=1">Selenide 7.7.0</a>.</p>
<ul>
<li><a href="https://ru.selenide.org/2025/01/07/selenide-7.7.0/#moon">Поддержка Moon</a></li>
<li><a href="https://ru.selenide.org/2025/01/07/selenide-7.7.0/#scroll-with-parameters">Метод <code>$.scroll()</code> с параметрами</a></li>
<li><a href="https://ru.selenide.org/2025/01/07/selenide-7.7.0/#fix-selenide-on-java-22">Починили Селенид на Java 22</a></li>
<li><a href="https://ru.selenide.org/2025/01/07/selenide-7.7.0/#update-proxy-mitm-certificate">MITM сертификат для Selenide proxy</a></li>
</ul>
<br>
<h3 id="moon">Запилили поддержку Moon</h3>
<p>Когда-то ребята из Aerokube сделали Selenoid - типа Selenium Grid на стероидах. Selenoid позволял запускать браузеры в
докере, снимать видео и быстро стал популярным. И в Selenide 4 года назад мы запили поддержку Selenoid.</p>
<p>Потом ребята сделали Moon - нечто очень похожее, но в Kubernetes. И переключились на него.
А теперь, похоже, поддержка Selenoid окончательно <a href="https://github.com/aerokube/selenoid">прекращена</a>:</p></description></item><item><title>Итоги года</title><link>https://ru.selenide.org/2025/01/03/year-summary/</link><pubDate>Fri, 03 Jan 2025 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2025/01/03/year-summary/</guid><description><p>С Новым Годом!</p>
<p>Чёртов 2024 наконец закончился, самое время подвести итоги года.</p>
<ul>
<li><a href="https://ru.selenide.org/2025/01/03/year-summary/#milestones">Вехи</a></li>
<li><a href="https://ru.selenide.org/2025/01/03/year-summary/#committers">Эльфы</a></li>
<li><a href="https://ru.selenide.org/2025/01/03/year-summary/#playwrightium">Маги</a></li>
<li><a href="https://ru.selenide.org/2025/01/03/year-summary/#videos">Палантиры</a></li>
<li><a href="https://ru.selenide.org/2025/01/03/year-summary/#companies">Племена</a></li>
<li><a href="https://ru.selenide.org/2025/01/03/year-summary/#statistics">Люди</a></li>
</ul>
<h2 id="milestones">Вехи</h2>
<p>За этот год мы выпустили 18 релизов (от 7.0.5 до 7.6.1) и запилили несколько важных фич:</p>
<ul>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#video-recorder">Видео рекордер</a></li>
<li><a href="https://ru.selenide.org/2024/02/27/selenide-7.2.0/#download-files-to-folder-in-selenium-grid">Скачивание файлов из Selenium Grid</a></li>
<li><a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#download-files-with-cdp">Новый способ скачивания файлов через CDP</a> - причём ещё и <a href="https://ru.selenide.org/2024/02/27/selenide-7.2.0/#download-files-remotely-with-cdp">для Grid и Selenoid</a></li>
<li><a href="https://ru.selenide.org/2024/09/15/selenide-7.5.0/#new-configuration-for-every-browser">Открывать браузер с новой конфигурацией</a></li>
<li>Таки <a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#if-with-timeout">надругались над Селенидом ¯¯<em>(ツ)</em>/¯¯</a></li>
</ul>
<br>
<h2 id="committers">Эльфы</h2>
<p>Весь этот год неустанно трудились и складывали подарки под ёлочку вот эти ребята.
Это крайне важно для проекта, несмотря на то, что их имена зачастую даже не видны в пресс-релизах, ибо многие из этих
изменений внутренние или слишком технические. А иногда даже вовсе и не мержатся.</p></description></item><item><title>Вышла Selenide 7.6.0</title><link>https://ru.selenide.org/2024/11/24/selenide-7.6.0/</link><pubDate>Sun, 24 Nov 2024 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2024/11/24/selenide-7.6.0/</guid><description><p>Всем привет!<br>
Мы выпустили <a href="https://github.com/selenide/selenide/milestone/214?closed=1">Selenide 7.6.0</a> с чем-то вкусненьким и интересненьким.<br>
Йоу-йоу, погнали обновляться!</p>
<blockquote>
<p>Видосики — вещь серьезная.<br>
Если есть видосики, значит они что-то отражают.</p>
</blockquote>
<p>Что нового:</p>
<ul>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#video-recorder">Добавили видео рекордер</a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#add-because-for-webdriver-conditions"><code>because</code> для условий вебдрайвера</a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#scroll-into-center">метод <code>$.scrollIntoCenter()</code></a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#support-special-space-characters">Поддержка специальных пробелов</a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#fix-in-new-browser-with-custom-config">Исправили <code>inNewBrowser</code> с кастомной конфигурацией</a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#fix-appium-page-factory">Исправили аппиумскую пэдж фактори</a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#less-selenide-logs">Уменьшили количество селенидовских логов</a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#fix-screenshot-behaviour">Подправили поведение <code>Selenide.screenshot(filename)</code></a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#jspecify">JSR305 -&gt; JSpecify</a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#simplify-custom-commands">Упростили кастомные команды</a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#update-dependencies">Обновили зависимости</a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#news">Новости</a></li>
<li><a href="https://ru.selenide.org/2024/11/24/selenide-7.6.0/#statistics">Статистика</a></li>
</ul>
<br>
<h3 id="video-recorder">Добавили видео рекордер</h3>
<p>А вот наконец-то!</p></description></item><item><title>Вышла Selenide 7.5.0</title><link>https://ru.selenide.org/2024/09/15/selenide-7.5.0/</link><pubDate>Sun, 15 Sep 2024 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2024/09/15/selenide-7.5.0/</guid><description><p>Давно не виделись, котаны!</p>
<p>Последний пресс-релиз я писал в апреле. С тех пор мы выпустили <a href="https://github.com/selenide/selenide/milestones?state=closed">несколько релизов</a>,
из которых самый объёмный - <a href="https://github.com/selenide/selenide/milestone/208?closed=1">7.4.0</a>.</p>
<p>Но теперь по-любому пора обновиться на <a href="https://github.com/selenide/selenide/milestone/212?closed=1">Selenide 7.5.0</a>:</p>
<ul>
<li><a href="https://ru.selenide.org/2024/09/15/selenide-7.5.0/#new-configuration-for-every-browser">Открывать браузер с новой конфигурацией</a></li>
<li><a href="https://ru.selenide.org/2024/09/15/selenide-7.5.0/#raise-bubbleable-events-from-selects">Починили события в селектах</a></li>
<li><a href="https://ru.selenide.org/2024/09/15/selenide-7.5.0/#builder-methods-for-download-options">Укоротили API для скачивания файлов</a></li>
<li><a href="https://ru.selenide.org/2024/09/15/selenide-7.5.0/#do-not-close-windows-when-downloading-file">Больше не закрываем окна при скачивании файлов</a></li>
<li><a href="https://ru.selenide.org/2024/09/15/selenide-7.5.0/#do-not-catch-all-errors">Больше не ловим вообще все ошибки</a></li>
<li><a href="https://ru.selenide.org/2024/09/15/selenide-7.5.0/#generate-error-details-during-error-construction">Починили кастомные обработчики ошибок</a></li>
<li><a href="https://ru.selenide.org/2024/09/15/selenide-7.5.0/#update-dependencies">Обновили зависимости</a></li>
<li><a href="https://ru.selenide.org/2024/09/15/selenide-7.5.0/#news">Новости</a></li>
<li><a href="https://ru.selenide.org/2024/09/15/selenide-7.5.0/#statistics">Статистика</a></li>
</ul>
<br>
<h3 id="new-configuration-for-every-browser">Можно открывать браузер с новой конфигурацией</h3>
<p>В Селениде есть один нюанс, неочевидный для начинающих: все настройки в классе <code>Configuration</code> - статические.
Поменяешь настройку в одном тесте - она повлияет на остальные. Особенно это важно при запуске параллельных тестов.</p></description></item><item><title>Вышла Selenide 7.3.1</title><link>https://ru.selenide.org/2024/04/28/selenide-7.3.1/</link><pubDate>Sun, 28 Apr 2024 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2024/04/28/selenide-7.3.1/</guid><description><p>Добро утро!</p>
<p>Мы выпустили <a href="https://github.com/selenide/selenide/milestone/205?closed=1">Selenide 7.3.1</a>.</p>
<p>Релиз небольшой, так что обновиться будет прям легко. Приступаем к распаковке:</p>
<ul>
<li><a href="https://ru.selenide.org/2024/04/28/selenide-7.3.1/#mock-specific-content-type">Мокать ответ сервера заданного типа</a></li>
<li><a href="https://ru.selenide.org/2024/04/28/selenide-7.3.1/#fix-clear-in-appium">Исправили метод <code>$.clear()</code> в мобилках</a></li>
<li><a href="https://ru.selenide.org/2024/04/28/selenide-7.3.1/#fix-error-message-for-invalid-link">Исправили сообщение при клике на некорректную ссылку</a></li>
<li><a href="https://ru.selenide.org/2024/04/28/selenide-7.3.1/#disable-warning-about-stolen-password">Отключили предупреждение Хрома про сворованные пароли</a></li>
<li><a href="https://ru.selenide.org/2024/04/28/selenide-7.3.1/#fix-cdp-download-for-custom-webdrivers">Исправили загрузку файлов через CDP для кастомных вебдрайверов</a></li>
<li><a href="https://ru.selenide.org/2024/04/28/selenide-7.3.1/#deprecate-setting-hold-browser-open">Задеприкейтили настройку <code>holdBrowserOpen</code></a></li>
<li><a href="https://ru.selenide.org/2024/04/28/selenide-7.3.1/#upgrade-to-selenium-4.20.0">Обновили Selenium с 4.19.1 до 4.20.0</a></li>
<li><a href="https://ru.selenide.org/2024/04/28/selenide-7.3.1/#statistics">Статистика</a></li>
</ul>
<br>
<h3 id="mock-specific-content-type">Мокать ответ сервера заданного типа</h3>
<p>Как вы помните, Селенид позволяет через прокси <a href="https://ru.selenide.org/2022/10/07/selenide-6.9.0/#proxy-mock-response">подменить ответ сервера</a>:</p></description></item><item><title>Вышла Selenide 7.2.0</title><link>https://ru.selenide.org/2024/02/27/selenide-7.2.0/</link><pubDate>Tue, 27 Feb 2024 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2024/02/27/selenide-7.2.0/</guid><description><p>Чёртов февраль.</p>
<p>Чтобы хоть как-то отвлечься, попробуйте обновиться на <a href="https://github.com/selenide/selenide/milestone/201?closed=1">Selenide 7.2.0</a>:</p>
<ul>
<li><a href="https://ru.selenide.org/2024/02/27/selenide-7.2.0/#download-files-to-folder-in-selenium-grid">Скачиваем файлы из Selenium Grid</a></li>
<li><a href="https://ru.selenide.org/2024/02/27/selenide-7.2.0/#download-files-remotely-with-cdp">Скачиваем файлы удалённо с помощью CDP</a></li>
<li><a href="https://ru.selenide.org/2024/02/27/selenide-7.2.0/#mobile-elements-collections">Коллекции элементов для мобилок</a></li>
<li><a href="https://ru.selenide.org/2024/02/27/selenide-7.2.0/#disable-chrome-warning-about-stolen-passwords">Выключили предупреждение хрома про покраденные пароли</a></li>
<li><a href="https://ru.selenide.org/2024/02/27/selenide-7.2.0/#improve-error-message-for-download-without-href">Сообщение об ошибке, если нет href</a></li>
<li><a href="https://ru.selenide.org/2024/02/27/selenide-7.2.0/#upgraded-to-selenium-4.18.1">Обновили Selenium с 4.17.0 на 4.18.1</a></li>
</ul>
<br>
<h3 id="download-files-to-folder-in-selenium-grid">Скачиваем файлы из Selenium Grid</h3>
<p>Наконец-то!<br>
Теперь вы можете скачивать файлы методом <code>FOLDER</code> и из Selenium Grid.<br>
До сих пор <code>FOLDER</code> работал только при локальном запуске и в Selenoid.</p></description></item><item><title>Вышла Selenide 7.1.0</title><link>https://ru.selenide.org/2024/02/07/selenide-7.1.0/</link><pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2024/02/07/selenide-7.1.0/</guid><description><p>Всем привет!
С Новым Годом, с новыми надеждами!</p>
<p>Сегодня у нас в меню свеженький блестящий <a href="https://github.com/selenide/selenide/milestone/199?closed=1">Selenide 7.1.0</a>:</p>
<ul>
<li><a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#download-files-with-cdp">Скачивание файлов с помощью CDP</a></li>
<li><a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#animated-condition">Условие <code>animated</code></a></li>
<li><a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#if-with-timeout">IF с таймаутом ¯¯_(ツ)_/¯¯</a></li>
<li><a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#force-click">Можно кликать задизейбленные элементы</a></li>
<li><a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#method-unfocus">Метод <code>$.unfocus()</code></a></li>
<li><a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#avoid-page-load-timeout-in-mobile">Исправили page load timeout в мобилках</a></li>
<li><a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#can-add-same-proxy-filter-many-times">Можно добавлять прокси фильтр многократно</a></li>
<li><a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#update-dependencies">Обновили зависимости</a></li>
<li><a href="https://ru.selenide.org/2024/02/07/selenide-7.1.0/#statistics">Статистика</a></li>
</ul>
<br>
<h3 id="download-files-with-cdp">Скачивание файлов с помощью CDP</h3>
<p>Не прошло и три года, как в Selenium завезли CDP, а мы уже сделали с помощью него скачивание файлов!
Как вы знаете, скачивать файлы в селениде можно несколькими способами: <code>HTTPGET</code>, <code>FOLDER</code>, <code>PROXY</code>.
Теперь к ним добавился ещё и <code>CDP</code>:</p></description></item><item><title>Вышла Selenide 7.0.1</title><link>https://ru.selenide.org/2023/10/26/selenide-7.0.1/</link><pubDate>Thu, 26 Oct 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/10/26/selenide-7.0.1/</guid><description><p>Вчера мы выпустили <a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/">Selenide 7.0.0</a> и, честно говоря, я ожидал волны жалоб насчёт Java 17.</p>
<p>Но нет. На Java 17 никто пока не жаловался. И это здорово! Все обновили джаву, все молодцы.<br>
Но зато люди очень просили обратно циклы по коллекциям.</p>
<p>Так и быть, в сегодняшнем <a href="https://github.com/selenide/selenide/milestone/194?closed=1">Selenide 7.0.1</a> мы кое-что вернули:</p>
<ul>
<li><a href="https://ru.selenide.org/2023/10/26/selenide-7.0.1/#restore-collection-loop">Вернули циклы по коллекциям</a></li>
<li><a href="https://ru.selenide.org/2023/10/26/selenide-7.0.1/#restore-collection-is-empty">Вернули метод <code>isEmpty()</code> у коллекций</a></li>
<li><a href="https://ru.selenide.org/2023/10/26/selenide-7.0.1/#restore-self-in-containers">Вернули поле <code>self</code> в контейнерах</a></li>
<li><a href="https://ru.selenide.org/2023/10/26/selenide-7.0.1/#rename-collection-condition">Переименовали <code>CollectionCondition</code> в <code>WebElementsCondition</code></a></li>
<li><a href="https://ru.selenide.org/2023/10/26/selenide-7.0.1/#upgrade-to-selenium-4.15.0">UPD 7.0.2: Обновились на Selenium 4.15.0</a></li>
</ul>
<br>
<h3 id="restore-collection-loop">Вернули циклы по коллекциям</h3>
<p>Теперь вы можете снова использовать <code>for</code> по коллекциям:</p></description></item><item><title>Вышла Selenide 7.0.0</title><link>https://ru.selenide.org/2023/10/25/selenide-7.0.0/</link><pubDate>Wed, 25 Oct 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/10/25/selenide-7.0.0/</guid><description><p>С днём рождения!</p>
<p>Да-да, в этот день 12 лет назад был сделан первый коммит в проекте Selenide.
Если интересно, здесь <a href="https://www.youtube.com/watch?v=DBkLFL4E5YA&amp;ab_channel=DEVCLUB.EU">видос моего рассказа к 10-летию селенида</a>.</p>
<p>К празднику мы выпустили мажорный релиз <a href="https://github.com/selenide/selenide/milestone/191?closed=1">Selenide 7.0.0</a>
с обновлением аж сразу на Java 17.</p>
<ul>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#java17">Обновились на Java 17</a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#update-dependencies">Обновили зависимости</a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#fix-deadlock-in-static-initialization">Дедлок при инициализации классов</a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#report-actual-value-at-the-moment-of-check">Актуальное значение на момент проверки</a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#remove-deprecated-condition-methods">Удалили старые методы в <code>Condition</code></a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#remove-deprecated-methods-from-collection-conditions">Удалили старые методы в <code>CollectionCondition</code></a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#remove-deprecated-methods-from-elements-collection">Удалили старые методы в <code>ElementsCollection</code></a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#replace-elements-container-by-container">Заменили <code>ElementsContainer</code> на <code>Container</code></a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#replace-file-not-found-exception">Заменили <code>FileNotFoundException</code> на <code>FileNotDownloadedError</code></a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#rename-exceptions-to-errors">Переименовали <code>*Exception</code> в <code>*Error</code></a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#remove-deprecated-listener">Удалили поддержку устаревшего <code>WebDriverEventListener</code></a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#remove-deprecated-drag-and-drop-methods">Удалили старые методы для Drag&rsquo;n&rsquo;drop</a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#remove-deprecated-get-selected-value-methods">Удалили устаревшие методы <code>$.getSelectedValue()</code> и <code>$.getSelectedText()</code></a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#remove-deprecated-testng-annotations">Удалили старые аннотации для TestNG <code>@Report</code> и <code>@GlobalTextReport</code></a></li>
<li><a href="https://ru.selenide.org/2023/10/25/selenide-7.0.0/#remove-other-deprecated-methods">Остальное</a></li>
</ul>
<br>
<h3 id="java17">Обновились на Java 17</h3>
<p>Чума!
Этот день настал!</p></description></item><item><title>Вышла Selenide 6.19.1</title><link>https://ru.selenide.org/2023/10/18/selenide-6.19.1/</link><pubDate>Wed, 18 Oct 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/10/18/selenide-6.19.1/</guid><description><p>Всем привет!</p>
<p>Мир замер в ожидании, грядут большие изменения!<br>
Скоро будет Selenide 7.0.0 с обновлением на Java 11.</p>
<blockquote>
<p>Эпоха Java8-лямбдовых куколдов проходит</p>
</blockquote>
<p>А напоследок мы выкатили <strong>последнюю версию</strong>, которая может ещё бегать на Java 8:</p>
<p><a href="https://github.com/selenide/selenide/milestone/193?closed=1">Selenide 6.19.1</a></p>
<p>В основном там обновления зависимостей, в первую очередь Appium 8.6.0:</p>
<ul>
<li>bump Appium from 8.5.1 to 8.6.0 <a href="https://github.com/selenide/selenide/pull/2494">(#2494)</a></li>
<li>Bump BrowserUpProxy <a href="https://github.com/selenide/selenide/pull/2510">(#2510)</a></li>
<li>Bump Netty from 4.1.98.Final to 4.1.100.Final <a href="https://github.com/selenide/selenide/pull/2484">(#2484)</a> <a href="https://github.com/selenide/selenide/pull/2498">(#2498)</a></li>
<li>Bump LittleProxy from 2.0.21 to 2.0.22 <a href="https://github.com/selenide/selenide/pull/2491">(#2491)</a></li>
<li>Bump Guava from 32.1.2-jre to 32.1.3-jre <a href="https://github.com/selenide/selenide/pull/2499">(#2499)</a></li>
<li>Bump Jackson from 2.15.2 to 2.15.3 <a href="https://github.com/selenide/selenide/pull/2502">(#2502)</a> <a href="https://github.com/selenide/selenide/pull/2503">(#2503)</a></li>
<li>Bump commons-io from 2.13.0 to 2.14.0 <a href="https://github.com/selenide/selenide/pull/2486">(#2486)</a></li>
</ul>
<br>
<p><a href="http://asolntsev.github.io/">Андрей Солнцев</a></p></description></item><item><title>Вышла Selenide 6.19.0</title><link>https://ru.selenide.org/2023/09/28/selenide-6.19.0/</link><pubDate>Thu, 28 Sep 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/09/28/selenide-6.19.0/</guid><description><p>Всем привет!
На излёте сентября вы выкатили <a href="https://github.com/selenide/selenide/milestone/192?closed=1">Selenide 6.19.0</a>.</p>
<blockquote>
<p>Можешь сплетничать, ненавидеть, регистрировать баги, и обсуждать в чате.
Но мы же оба понимаем, что при встрече ты будешь мне мило слать пулреквест.</p>
</blockquote>
<div class="blogpost-menu">
<ul>
<li><a href="#add-highlight-method">Новый метод <code>$.highlight()</code></a></li>
<li><a href="#strip-invisible-spaces-in-collections">Убираем невидимые пробелы в текстах коллекций</a></li>
<li><a href="#upgrade-to-selenium-4.13.0">Обновились на Selenium 4.13.0</a></li>
<li><a href="#remove-hub-url-check">Убрали строгую проверку на "/wd/hub"</a></li>
<li><a href="#replace-elements-container-by-container">Заменили <code>ElementsContainer</code> на <code>Container</code></a></li>
<li><a href="#tap-double-tap">Методы <code>$.tap()</code>, <code>$.doubleTap()</code> для мобилок</a></li>
<li><a href="#add-selector-by-class-and-index">Селектор по классу и индексу для мобилок</a></li>
<li><a href="#news">Новости</a></li>
</ul>
</div>
<br>
<h3 id="add-highlight-method">Новый метод <code>$.highlight()</code> для подсветки элемента</h3>
<p>Чувствую, открываем очередной ящик Пандоры, но что поделать.</p></description></item><item><title>Вышла Selenide 6.18.0</title><link>https://ru.selenide.org/2023/09/06/selenide-6.18.0/</link><pubDate>Wed, 06 Sep 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/09/06/selenide-6.18.0/</guid><description><p>Все уже перевернули календарь?<br>
Тогда при свете костров рябин можете обновиться на <a href="https://github.com/selenide/selenide/milestone/190?closed=1">Selenide 6.18.0</a>.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#show-actual-texts-in-collections">Показываем актуальные тексты в коллекциях</a></li>
<li><a href="#update-to-selenium-4.12.1">Обновили Selenium с 4.11.0 на 4.12.1</a></li>
<li><a href="#restore-basic-auth-via-cdp">Вернули BasicAuth через DevTools</a></li>
<li><a href="#add-method-get-options">Добавили метод <code>$$.getOptions()</code></a></li>
<li><a href="#get-focused-element-lazy-loaded">Метод <code>getFocusedElement()</code> обленился</a></li>
<li><a href="#support-appium-elements-in-page-objects">Поля <code>SelenideAppiumElement</code> в пэдж обжектах</a></li>
<li><a href="#exact-scroll-in-appium">Точечный скроллинг в мобилках</a></li>
<li><a href="#no-elements-container-for-page-object">Не наследовать пэдж обжект от <code>ElementsContainer</code></a></li>
<li><a href="#update-dependencies">Обновили зависимости</a></li>
<li><a href="#statistics">Статистика</a></li>
</ul>
</div>
<br>
<h3 id="show-actual-texts-in-collections">Показываем актуальные тексты в коллекциях</h3>
<p>В релизе 6.16.0 мы <a href="https://ru.selenide.org/2023/07/02/selenide-6.16.0/#speedup-collection-checks">ускорили проверки коллекций</a>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">$$</span><span class="p">(</span><span class="s">&#34;.troubles&#34;</span><span class="p">).</span><span class="na">shouldHave</span><span class="p">(</span><span class="n">texts</span><span class="p">(</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="s">&#34;Всё не то&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;всё не так&#34;</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="s">&#34;ты мой друг&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;я твой враг&#34;</span><span class="p">));</span><span class="w">
</span></span></span></code></pre></div><p>Одна из оптимизаций была такая: если размер коллекции не совпадает, то селенид даже не начинает проверять тексты элементов,
а сразу кидает ошибку:</p></description></item><item><title>Вышла Selenide 6.17.2</title><link>https://ru.selenide.org/2023/08/24/selenide-6.17.2/</link><pubDate>Thu, 24 Aug 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/08/24/selenide-6.17.2/</guid><description><p>Добрий вечір!</p>
<p>Сегодня 24 августа - День Независимости Украины.<br>
И в честь этого праздника - маленький релизец <a href="https://github.com/selenide/selenide/milestone/189?closed=1">Selenide 6.17.2</a>.</p>
<br>
<h3 id="отвисли-зависающий-вебдрайвер-ещё-раз">Отвисли зависающий вебдрайвер ещё раз</h3>
<p><a href="https://ru.selenide.org/2023/08/20/selenide-6.17.1/">В прошлом релизе</a> мы исправили проблему с зависающим вебдрайвером <em>для большинства пользователей</em>.<br>
Но остались несчастные, которые вынуждены открывать тестируемые сайты в Хроме через BasicAuth. И вот для них вебдрайвер
по-прежнему зависал.</p>
<blockquote>
<p>Усилия по установлению потерянной с вебдрайвером связи<br>
не дали результатов.<br>
По предварительным данным, поток &ldquo;CDP Connection&rdquo; перешёл на нерасчётную орбиту и остановился, столкнувшись с зашаренным локом.<br>
Стактрейсы зависших потоков не поддаются визуальному опознанию.</p></description></item><item><title>Вышла Selenide 6.17.1</title><link>https://ru.selenide.org/2023/08/20/selenide-6.17.1/</link><pubDate>Sun, 20 Aug 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/08/20/selenide-6.17.1/</guid><description><p>Доброе утро!</p>
<p>Сегодня 20 августа - <a href="https://www.visitestonia.com/ru/%D0%BF%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D1%8D%D1%81%D1%82%D0%BE%D0%BD%D0%B8%D1%8F/%D0%B4%D0%B5%D0%BD%D1%8C-%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D1%8D%D1%81%D1%82%D0%BE%D0%BD%D1%81%D0%BA%D0%BE%D0%B9-%D1%80%D0%B5%D1%81%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D0%BA%D0%B8">День Восстановления Независимости Эстонии</a>.</p>
<p>В честь этого праздника - небольшой релиз <a href="https://github.com/selenide/selenide/milestone/188?closed=1">Selenide 6.17.1</a>!</p>
<div class="blogpost-menu">
<ul>
<li><a href="#fix-hanging-webdriver">Отвисли зависающий вебдрайвер</a></li>
<li><a href="#support-type-in-mobile-apps">Добавили поддержку <code>$.type()</code> в мобилках</a></li>
<li><a href="#fix-type-with-keys">Исправили метод <code>$.type(Keys.*)</code></a></li>
<li><a href="#remove-spaces-from-texts">Убрали пробелы с концов в <code>$$.texts()</code></a></li>
</ul>
</div>
<br>
<h3 id="fix-hanging-webdriver">Отвисли зависающий вебдрайвер</h3>
<p>В релизе Selenide 6.16.0 (на самом деле <a href="https://github.com/selenide/selenide/pull/2358">PR 2358</a>), в селениде случайно появилась бага, из-за которой вебдрайвер мог легко зависнуть.
А именно, если вызвать два раза подряд <code>open(url, pageClass)</code>, то вебдрайвер накрепко зависает.</p>
<blockquote>
<p>По предварительным данным, вебдрайвер перешел на нерасчётную орбиту и разбился, столкнувшись с дедлоком в параллельных потоках devtools.</p></description></item><item><title>Вышла Selenide 6.17.0</title><link>https://ru.selenide.org/2023/08/02/selenide-6.17.0/</link><pubDate>Wed, 02 Aug 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/08/02/selenide-6.17.0/</guid><description><p>Привіт!</p>
<p>Погнали оновлюватись на <a href="https://github.com/selenide/selenide/milestone/187?closed=1">Selenide 6.17.0</a>!</p>
<div class="blogpost-menu">
<ul>
<li><a href="#update-to-selenium-4.11.0">Обновились на Selenium 4.11.0</a></li>
<li><a href="#replace-webdrivermanager-by-selenium-manager">Заменили WebDriverManager на SeleniumManager</a></li>
<li><a href="#support-java8-again">Вернули поддержку Java 8</a></li>
<li><a href="#add-method-type">Добавили метод <code>$.type()</code></a></li>
<li><a href="#click-with-long-press">Новый метод для мобилок: клик с долгим нажатием</a></li>
<li><a href="#swipe-right-and-left">Новый метод для мобилок: свайп влево и вправо</a></li>
<li><a href="#statistics">Статистика</a></li>
</ul>
</div>
<br>
<h3 id="update-to-selenium-4.11.0">Обновились на Selenium 4.11.0</h3>
<p>Мы обновили версию Selenium с 4.10.0 на 4.11.0.</p>
<p>Полный список изменений в Selenium <a href="https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG">тут</a>.</p>
<p>См. <a href="https://github.com/selenide/selenide/pull/2393">PR 2393</a>.</p>
<br>
<h3 id="replace-webdrivermanager-by-selenium-manager">Заменили WebDriverManager на SeleniumManager</h3>
<p>Начиная с версии 4.6.0, в Селениуме появился встроенный механизм для скачивания вебдрайверов - SeleniumManager.
Насколько я понимаю, делает его всё тот же <a href="https://bonigarcia.dev/">Boni Garcia</a>, который создал и WebDriverManager.
Только теперь он это делает официально как часть проекта Selenium.</p></description></item><item><title>Вышла Selenide 6.16.1</title><link>https://ru.selenide.org/2023/07/24/selenide-6.16.1/</link><pubDate>Mon, 24 Jul 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/07/24/selenide-6.16.1/</guid><description><p>Привет, пипл!</p>
<p>Мы выпустили небольшое обновление <a href="https://github.com/selenide/selenide/milestone/186?closed=1">Selenide 6.16.1</a>.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#all-of-and-any-of-conditions">Добавили условия <code>allOf</code> и <code>anyOf</code></a></li>
<li><a href="#add-checks-for-cookies">Добавили проверки для cookies</a></li>
<li><a href="#update-webdrivermanager">Обновили WebDriverManager</a></li>
<li><a href="#support-tspan-in-svg">Исправили проверку текстов <code>&lt;tspan&gt;</code> в SVG</a></li>
</ul>
</div>
<br>
<h3 id="all-of-and-any-of-conditions">Добавили условия <code>allOf</code> и <code>anyOf</code></h3>
<p>Теперь можно проверить одно из нескольких условий (OR):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">$</span><span class="p">(</span><span class="s">&#34;#president&#34;</span><span class="p">).</span><span class="na">shouldHave</span><span class="p">(</span><span class="n">anyOf</span><span class="p">(</span><span class="n">text</span><span class="p">(</span><span class="s">&#34;Ничтожество&#34;</span><span class="p">),</span><span class="w"> </span><span class="n">text</span><span class="p">(</span><span class="s">&#34;Трусливый бездарь&#34;</span><span class="p">)));</span><span class="w">
</span></span></span></code></pre></div><p>(на самом деле для этого и раньше был метод <code>Condition.or</code>, но <code>anyOf</code> как будто чуть удобнее).</p>
<p>Также можно проверить совпадение всех условий сразу (AND):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">$</span><span class="p">(</span><span class="s">&#34;#generals&#34;</span><span class="p">).</span><span class="na">shouldHave</span><span class="p">(</span><span class="n">allOf</span><span class="p">(</span><span class="n">text</span><span class="p">(</span><span class="s">&#34;бездарней&#34;</span><span class="p">),</span><span class="w"> </span><span class="n">text</span><span class="p">(</span><span class="s">&#34;ничтожней&#34;</span><span class="p">)));</span><span class="w">
</span></span></span></code></pre></div><p>(на самом деле это то же самое, что и <code>$(&quot;#generals&quot;).shouldHave(text(&quot;бездарней&quot;), text(&quot;ничтожней&quot;))</code>,
но зато результат <code>allOf</code> можно вынести в переменную или метод, создав таким образом своё условие).</p></description></item><item><title>Вышла Selenide 6.16.0</title><link>https://ru.selenide.org/2023/07/02/selenide-6.16.0/</link><pubDate>Sun, 02 Jul 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/07/02/selenide-6.16.0/</guid><description><p>Доброй ночи!</p>
<blockquote>
<p>У меня к вам предложение, от которого лучше не отказываться.</p>
</blockquote>
<p>Обновляйтесь на <a href="https://github.com/selenide/selenide/milestone/185?closed=1">Selenide 6.16.0</a>!</p>
<div class="blogpost-menu">
<ul>
<li><a href="#speedup-collection-checks">Ускорили проверки коллекций</a></li>
<li><a href="#improve-collections-error-messages">Улучшили сообщение об ошибках в коллекциях</a></li>
<li><a href="#new-date-checks">Новые проверки для дат <code>date(...)</code> и <code>datetime(...)</code></a></li>
<li><a href="#set-date-time-value">Новые методы для установки времени</a></li>
<li><a href="#full-stacktrace-in-soft-asserts">Полный стектрейс в софт ассертах</a></li>
<li><a href="#improve-basic-auth-in-chromium-browsers">BasicAuth в браузерах Chromium</a></li>
<li><a href="#multiple-domains-in-basic-auth">Несколько доменов в BasicAuth</a></li>
<li><a href="#fix-double-click-in-appium">Исправили <code>$.doubleClick()</code> в Appium</a></li>
<li><a href="#screenshot-before-after-each">Снимаем скриншот чуть раньше</a></li>
<li><a href="#update-dependencies">Обновили зависимости</a></li>
<li><a href="#news">Новости</a></li>
</ul>
</div>
<br>
<h3 id="speedup-collection-checks">Ускорили проверки коллекций</h3>
<p>Вот это крутизна!</p>
<p>Как вы знаете, одна из базовых возможностей в Селениде - это проверки коллекций. Одной строчкой можно проверить сразу кучу элементов:</p></description></item><item><title>Вышла Selenide 6.15.0</title><link>https://ru.selenide.org/2023/05/29/selenide-6.15.0/</link><pubDate>Mon, 29 May 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/05/29/selenide-6.15.0/</guid><description><p>Доброй ночи!</p>
<blockquote>
<p>Есть люди, которые постоянно деплоят, а есть люди, которые один раз в жизни где-то выучили, что должен быть РЕЛИЗ — и копят, копят, копят фичи для этого релиза. <br>
А счастливый дедушка-мейнтейнер думает, что ему хорошо.<br>
И как использовать опенсорс-проект, если вдруг случайно окажется, что этот дедушка — законченный мудак?</p>
</blockquote>
<p>Как вы поняли, мы выпустили новую версию <a href="https://github.com/selenide/selenide/milestone/184?closed=1">Selenide 6.15.0</a>
с серьёзными такими внутренними переделками.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#merge-selenide-selenoid-to-selenide">Влили проект <code>selenide-selenoid</code> в <code>selenide</code></a></li>
<li><a href="#merge-selenide-appium-to-selenide">Влили проект <code>selenide-appium</code> в <code>selenide</code></a></li>
<li><a href="#clicking-disable-element-fails">Клик теперь проверяет, что элемент не disabled</a></li>
<li><a href="#escape-newlines-in-report">Маскируем переводы строк в отчёте</a></li>
<li><a href="#combined-selectors-for-mobile-apps">Комбинированные селекторы для мобилок</a></li>
<li><a href="#conditions-for-mobile-apps">Новые проверки для мобилок</a></li>
<li><a href="#new-selectors-for-mobile-apps">Новые селекторы для мобилок</a></li>
<li><a href="#switch-context-in-mobile-apps">Переключение контекста в мобилках</a></li>
<li><a href="#refactor-collection-conditions">Переколбас CollectionCondition</a></li>
<li><a href="#news">Новости</a></li>
</ul>
</div>
<br>
<h3 id="merge-selenide-selenoid-to-selenide">Влили проект <code>selenide-selenoid</code> в <code>selenide</code></h3>
<p>Это позволит нам легче менять и релизить эти проекты.
Для вас поменяется объявление зависимости.
Вместо</p></description></item><item><title>Вышла Selenide 6.14.0</title><link>https://ru.selenide.org/2023/05/08/selenide-6.14.0/</link><pubDate>Mon, 08 May 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/05/08/selenide-6.14.0/</guid><description><p>Привет!</p>
<p>Пока не начался контрнаступ, давайте-ка обновимся на <a href="https://github.com/selenide/selenide/milestone/181?closed=1">Selenide 6.14.0</a> - а то потом будет не до него.</p>
<p>В нём есть несколько изменений, которые как будто не очень большие, но могут чего-нибудь сломать.
<em>Поэтому очень советую не оттягивать и <strong>обновиться сейчас</strong>.</em></p>
<div class="blogpost-menu">
<ul>
<li><a href="#speedup-debug">Ускорили дебаг</a></li>
<li><a href="#remove-flag--no-sandbox">Убрали флажок <code>--no-sandbox</code></a></li>
<li><a href="#add-step-method">Добавили метод <code>step</code> для отчётиков</a></li>
<li><a href="#drag-and-drop-with-options">Добавили метод <code>$.dragAndDrop(DragAndDropOptions)</code></a></li>
<li><a href="#allow-negative-browser-position">Браузер за экран</a></li>
<li><a href="#update-dependencies">Обновили зависимости</a></li>
<li><a href="#news">Новости</a></li>
<li><a href="#statistics">Статистика</a></li>
</ul>
</div>
<br>
<h3 id="speedup-debug">Ускорили дебаг</h3>
<p>Когда дебажишь свой тест и останавливаешься на брейкпойнте, иногда можно заметить, что IDE очень долго отображаешь
значения полей в пэджобжекте. Вот в таком состоянии IDE может подвиснуть надолго:</p></description></item><item><title>Вышла Selenide 6.13.0</title><link>https://ru.selenide.org/2023/04/04/selenide-6.13.0/</link><pubDate>Tue, 04 Apr 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/04/04/selenide-6.13.0/</guid><description><p>Привет!</p>
<p>Сегодня у нас большой мажорный релиз <a href="https://github.com/selenide/selenide/milestone/177?closed=1">Selenide 6.13.0</a>.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#add-method-cached">Добавили метод <code>$.cached()</code></a></li>
<li><a href="#mock-response-with-http-status">Добавили http статус при моке ответа сервера</a></li>
<li><a href="#add-method-in-new-browser">Новый метод <code>inNewBrowser</code> для запуска куска кода в новом браузере</a></li>
<li><a href="#add-method-doubleclick-with-options">Добавили метод <code>$.doubleClick(options)</code></a></li>
<li><a href="#add-condition-inner-text">Добавили условие <code>$.shouldHave(innerText())</code></a></li>
<li><a href="#add-condition-attributes">Добавили условие для коллекций <code>$$.shouldHave(attributes(...))</code></a></li>
<li><a href="#clear-error-message-in-select">Ясное сообщение об ошибки в методах <code>$.select*()</code></a></li>
<li><a href="#fix-method-sublist">Исправили ошибку в методе <code>$$.subList()</code></a></li>
<li><a href="#update-dependencies">Обновили зависимости</a></li>
<li><a href="#news">Новости</a></li>
</ul>
</div>
<br>
<h3 id="add-method-cached">Добавили метод <code>$.cached()</code></h3>
<p>Иногда приходится воротить довольно сложный код для поиска элемента.
И он может работать <strong>медленно</strong>, особенно если элемент ищется из какой-то большой коллекции с применением сложной фильтрации.
Что-то вроде такого:</p></description></item><item><title>Вышла Selenide 6.13.0</title><link>https://ru.selenide.org/2023/04/01/selenide-6.13.0/</link><pubDate>Sat, 01 Apr 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/04/01/selenide-6.13.0/</guid><description><p>Всем привет!</p>
<p>Ура, сегодня у нас новый релиз <strong>Selenide 6.13.0</strong></p>
<div class="blogpost-menu">
<ul>
<li><a href="#banners-support">Поддержка баннеров</a></li>
<li><a href="#news">Новости</a></li>
</ul>
</div>
<br>
<h3 id="banners-support">Поддержка баннеров</h3>
<h4 id="проблема">Проблема</h4>
<p>Очень часто люди спрашивают: &ldquo;А что делать, если посреди теста на экране может выскочить баннер или какой-то ещё неожиданный элемент?&rdquo;</p>
<p>Ведь он может перекрыть другие элементы, закрыть важную кнопку и т.п. - и таким образом сломать тест.</p>
<blockquote>
<p><a href="https://ru.selenide.org/2019/12/02/advent-calendar-how-to-abuse-selenide/">Я всегда на это люто ругался</a>
и настоятельно советовал взять тестовую среду под контроль и самому из теста регулировать, когда баннеры должны появляться, а когда нет.</p></description></item><item><title>Вышла Selenide 6.12.4</title><link>https://ru.selenide.org/2023/03/23/selenide-6.12.4/</link><pubDate>Thu, 23 Mar 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/03/23/selenide-6.12.4/</guid><description><p>Привет!</p>
<p>А вы следили за новостями 23 марта?
Молодцы!</p>
<p>Сегодня у нас <em>Точка Отсчёта</em> - релиз <a href="https://github.com/selenide/selenide/milestone/180?closed=1">Selenide 6.12.4</a>.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#workaround-for-chromedriver-bug">Костыль для Хрома</a></li>
<li><a href="#support-jdk-http-client">Добавили поддержку jdk-http-client</a></li>
<li><a href="#restore-proxy-after-using">Исправили $.download(PROXY) после "using"</a></li>
<li><a href="#fix-clear-when-element-disappears">Исправили $.clear() при пропадании элемента</a></li>
<li><a href="#update-dependencies">Обновили зависимости</a></li>
<li><a href="#release-selenide-appium">Выпустили selenide-appium 2.7.0</a></li>
<li><a href="#release-selenide-selenoid">Выпустили selenide-selenoid 2.3.6</a></li>
<li><a href="#news">Новости</a></li>
</ul>
</div>
<br>
<h3 id="workaround-for-chromedriver-bug">Костыль для Хрома</h3>
<p>Напоминание: если вы всё ещё роете интернет в поисках лекарства против</p>
<blockquote>
<p>Invalid Status code=403 text=Forbidden</p>
</blockquote>
<p>то лекарство уже было выпущено в <a href="https://ru.selenide.org/2023/03/09/selenide-6.12.2/">Selenide 6.12.2</a>.</p>
<br>
<h3 id="support-jdk-http-client">Добавили поддержку <code>jdk-http-client</code> вместо <code>netty-client</code></h3>
<p>По умолчанию по-прежнему используется <code>netty-client</code>, но если
вы хотите <a href="https://www.selenium.dev/blog/2022/using-java11-httpclient/">перейти на jdk-http-client</a>,
то можете это легко сделать:</p></description></item><item><title>Вышла Selenide 6.12.2</title><link>https://ru.selenide.org/2023/03/09/selenide-6.12.2/</link><pubDate>Thu, 09 Mar 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/03/09/selenide-6.12.2/</guid><description><p>Привет!</p>
<p>Срочно обновляйтесь на <a href="https://github.com/selenide/selenide/milestone/178?closed=1">Selenide 6.12.2</a>.</p>
<p>Он содержит один важный костыль для баги в Chromedriver 111.</p>
<blockquote>
<p>Invalid Status code=403 text=Forbidden</p>
</blockquote>
<h3 id="в-чём-проблема">В чём проблема?</h3>
<p>Недавно вышла новая версия Chrome и Chromedriver 111.
И у всех, кто на неё обновился, резко посыпались тесты.
Браузер открывался, но при этом тест получал от вебдрайвера ошибку и дальше не мог ничего
сделать, в том числе закрыть этот самый браузер.</p>
<p>В логах было видно такое вот красноречивое сообщение:</p></description></item><item><title>Вышла Selenide 6.12.0</title><link>https://ru.selenide.org/2023/02/24/selenide-6.12.0/</link><pubDate>Fri, 24 Feb 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/02/24/selenide-6.12.0/</guid><description><p>Привет!</p>
<p>В этот трагичный и одновременно праздничный день мы выпустили
релиз <a href="https://github.com/selenide/selenide/milestone/173?closed=1">Selenide 6.12.0</a>.</p>
<p>В нём почти нет фич, но есть новый режим, который может сильно повлиять на ваши тесты.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#new-headless-mode">Новый безбашенный режим</a></li>
<li><a href="#improve-logs-when-downloading-file">Улучшили логирование при скачивании файлов</a></li>
<li><a href="#improve-download-in-edge">Улучшили скачивание файлов в Edge под Windows</a></li>
<li><a href="#update-dependencies">Обновили зависимости</a></li>
<li><a href="#rename-master-to-main">Переименовали master в main</a></li>
</ul>
</div>
<br>
<h3 id="new-headless-mode">Новый безбашенный режим</h3>
<p>В Chromium-браузерах появился новый безголовый (headless) режим.
Подробнее о нём <a href="https://developer.chrome.com/articles/new-headless/">в их блоге</a>.</p>
<p>Если вкратце, этот новый режим внутри использует тот же код, что и обычный headful, и поэтому должен вылечить все
болячки headless режима. А вот старый headless режим по сути был отдельным браузером со своими особенностями и багами.</p></description></item><item><title>Вышла Selenide 6.11.1</title><link>https://ru.selenide.org/2023/01/20/selenide-6.11.1/</link><pubDate>Fri, 20 Jan 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/01/20/selenide-6.11.1/</guid><description><p>Хаюшки!</p>
<p>Одна моя знакомая из Италии рассказала, что вышел новый
релиз <a href="https://github.com/selenide/selenide/milestone/174?closed=1">Selenide 6.11.1</a>.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#truncate-webdriver-exception-message">Обрезаем только WebDriverException</a></li>
<li><a href="#fix-download-to-folder">Чутка подправили $.download(FOLDER)</a></li>
<li><a href="#update-dependencies">Обновили зависимости</a></li>
<li><a href="#statistics">Статистика</a></li>
</ul>
</div>
<h3 id="truncate-webdriver-exception-message">Обрезаем только сообщения <code>WebDriverException</code></h3>
<p>В довольно редких ситуациях - если вы</p>
<ul>
<li>используете кастомное действие (custom command),</li>
<li>и из него кидаете какую-то свою ошибку (assertion error),</li>
<li>и текст этой ошибки содержит несколько строк,</li>
</ul>
<p>то Селенид обрезает этот текст, оставляя лишь первую строку.
Изначально планировалось обрезать только текст <code>WebDriverException</code>, потому что он объективно содержит многострочный мусор:</p></description></item><item><title>Вышла Selenide 6.11.0</title><link>https://ru.selenide.org/2023/01/03/selenide-6.11.0/</link><pubDate>Tue, 03 Jan 2023 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2023/01/03/selenide-6.11.0/</guid><description><center>
<img src="https://ru.selenide.org/images/2023/01/selenide-6.11.0.png" width="700"/>
</center>
<br>
<h1 id="с-новым-годом-друзья">С Новым Годом, друзья!</h1>
<p>Дедушка Мороз принёс нам новый релиз <a href="https://github.com/selenide/selenide/milestone/169?closed=1">Selenide 6.11.0</a>.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#added-copy-paste-methods">Методы для копирования текста</a></li>
<li><a href="#fix-download-with-credentials">Скачивание файла за BasicAuth</a></li>
<li><a href="#download-large-files-via-proxy">Скачиваем большие файлы через прокси</a></li>
<li><a href="#can-handle-unexpected-alerts">Неожиданные алерты</a></li>
<li><a href="#fix-screenshot-file-permission">Пермиссии файла скриншота</a></li>
<li><a href="#support-as-annotation">Аннотация @As для полей без @FindBy</a></li>
<li><a href="#last-page-source">Последний исходник страницы</a></li>
<li><a href="#page-url-in-error-message">URL страницы в ошибке</a></li>
</ul>
</div>
<h3 id="added-copy-paste-methods">Добавили методы для копирования текста</h3>
<p>Мы добавили два новых метода:</p>
<ul>
<li><code>Selenide.copy()</code> - копирует выделенный текст в буфер обмена, и</li>
<li><code>$.paste()</code> вставляет текст из буфера обмена в поле ввода.</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">open</span><span class="p">(</span><span class="s">&#34;https://best-propaganda-quotes.ru&#34;</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">$</span><span class="p">(</span><span class="s">&#34;#solovjov&#34;</span><span class="p">).</span><span class="na">doubleClick</span><span class="p">();</span><span class="w"> </span><span class="c1">// select the quote text</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">Selenide</span><span class="p">.</span><span class="na">copy</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">$</span><span class="p">(</span><span class="s">&#34;[name=q]&#34;</span><span class="p">).</span><span class="na">paste</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">$</span><span class="p">(</span><span class="s">&#34;[name=q]&#34;</span><span class="p">).</span><span class="na">shouldHave</span><span class="p">(</span><span class="n">text</span><span class="p">(</span><span class="s">&#34;Обсираться мелкими алмазами на берегу озера Комо&#34;</span><span class="p">));</span><span class="w">
</span></span></span></code></pre></div><p>Известные ограничения: пока что эти методы не работают на серверных линуксах (без графического окружения).
Но запуск xvfb должен помочь.</p></description></item><item><title>Вышла Selenide 6.10.2</title><link>https://ru.selenide.org/2022/12/08/selenide-6.10.2/</link><pubDate>Thu, 08 Dec 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/12/08/selenide-6.10.2/</guid><description><br>
<h1 id="всем-привет">Всем привет!</h1>
<p>У нас вышел новый мини-релиз <a href="https://github.com/selenide/selenide/milestone/171?closed=1">Selenide 6.10.2</a>.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#added-method-press">Добавили метод $.press()</a></li>
<li><a href="#trigger-change-events-by-select-methods">Генерируем события change в методах $.select*</a></li>
<li><a href="#friendly-select-option-in-reports">selectOption в отчётах</a></li>
<li><a href="#friendly-local-storage-in-reports">localStorage в отчётах</a></li>
<li><a href="#news">Новости</a></li>
</ul>
</div>
<h3 id="added-method-press">Добавили метод <code>$.press()</code></h3>
<p>По сути это то же самое, что <code>sendKeys()</code>, только он не <code>void</code>. То есть его можно <em>чейнить</em> с другими методами:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">$</span><span class="p">(</span><span class="s">&#34;#username&#34;</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">.</span><span class="na">press</span><span class="p">(</span><span class="s">&#34;x&#34;</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">.</span><span class="na">press</span><span class="p">(</span><span class="n">TAB</span><span class="p">,</span><span class="w"> </span><span class="n">CONTROL</span><span class="p">,</span><span class="w"> </span><span class="n">ALT</span><span class="p">,</span><span class="w"> </span><span class="n">ENTER</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">.</span><span class="na">should</span><span class="p">(</span><span class="n">disappear</span><span class="p">);</span><span class="w">
</span></span></span></code></pre></div><p>Спасибо <a href="https://github.com/amuthansakthivel">Amuthan Sakthivel</a> за <a href="https://github.com/selenide/selenide/pull/2032">PR 2032</a>.</p>
<br>
<h3 id="trigger-change-events-by-select-methods">Генерируем события <code>change</code> в методах <code>$.select*</code></h3>
<p>Как вы помните, в предыдущем релизе мы <a href="https://ru.selenide.org/2022/11/21/selenide-6.10.0/#select-options-using-javascript">переделали работу с селектами на JavaScript</a>.
Но при этом забыли, что надо ещё и генерировать события <code>focus</code>, <code>click</code>, <code>change</code>. Теперь генерируем.</p></description></item><item><title>Вышла Selenide 6.10.0</title><link>https://ru.selenide.org/2022/11/21/selenide-6.10.0/</link><pubDate>Mon, 21 Nov 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/11/21/selenide-6.10.0/</guid><description><br>
<h1 id="недобрый-вечер">Недобрый вечер!</h1>
<p>Вышел новый релиз <a href="https://github.com/selenide/selenide/milestone/167?closed=1">Selenide 6.10.0</a>.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#slow-download-in-firefox">Улучшили алгоритм скачивания файлов</a></li>
<li><a href="#fail-download-early">Ускорили отрицательное скачивание файла</a></li>
<li><a href="#select-options-using-javascript">Выбираем опции через JavaScript</a></li>
<li><a href="#make-click-chainable">Сделали клик "чейнебл"</a></li>
<li><a href="#fix-size-for-new-tabs">Размер окна для новых вкладок</a></li>
<li><a href="#encode-basic-auth-credentials-in-url">BasicAuth со спецсимволами</a></li>
<li><a href="#news">Новости</a></li>
</ul>
</div>
<h3 id="slow-download-in-firefox">Улучшили алгоритм скачивания файлов</h3>
<p>Один из алгоритмов скачивания в Selenide - это FOLDER.
Чтобы скачать файл, он кликает нужную кнопку и ждёт, пока в папке &ldquo;Downloads&rdquo; появится нужный файл.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">File</span><span class="w"> </span><span class="n">еноты</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">$</span><span class="p">(</span><span class="s">&#34;#stolenRaccoonsReport&#34;</span><span class="p">).</span><span class="na">download</span><span class="p">(</span><span class="n">using</span><span class="p">(</span><span class="n">FOLDER</span><span class="p">));</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">assertThat</span><span class="p">(</span><span class="n">еноты</span><span class="p">).</span><span class="na">hasName</span><span class="p">(</span><span class="s">&#34;еноты.xls&#34;</span><span class="p">);</span><span class="w">
</span></span></span></code></pre></div><p>Проблема в том, что этот алгоритм не очень хорошо работал в Firefox, когда скачивание идёт очень медленно.
Оказалось, что Firefox сразу создаёт в папке два файла: &ldquo;еноты.xls&rdquo; и &ldquo;еноты.xls.part&rdquo;, и оба пустые.
И лишь затем начинает их потихоньку заполнять.</p></description></item><item><title>Вышла Selenide 6.9.0</title><link>https://ru.selenide.org/2022/10/07/selenide-6.9.0/</link><pubDate>Fri, 07 Oct 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/10/07/selenide-6.9.0/</guid><description><br>
<h1 id="привет">Привет!</h1>
<p>Позвольте прервать ваш думскроллинг хорошей новостью.</p>
<p>Вы выпустили <a href="https://github.com/selenide/selenide/milestone/166?closed=1">Selenide 6.9.0</a>!
В основном прокачали прокси и обновили селениум.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#proxy-mock-response">Подменяем ответ сервера в прокси</a></li>
<li><a href="#secure-authorization-header">Заголовок авторизации</a></li>
<li><a href="#resolve-proxy-hostname">Подкрутили имя прокси хоста</a></li>
<li><a href="#upgrade-to-selenium-4.5.0">Обновились на Selenium 4.5.0</a></li>
<li><a href="#remove-opera-support">Выкинули поддержку Opera</a></li>
<li><a href="#news">Новости</a></li>
</ul>
</div>
<h3 id="proxy-mock-response">Научили прокси подменять ответ сервера</h3>
<p>Как вы знаете, селенид умеет запускать свой встроенный прокси между браузером и тестируемым приложением. До сих пор мы
использовали его в основном для отслеживания запросов (логирования, скачивания файлов), но теперь ещё и добавили возможность
подменить ответ сервера. Это удобно, например, чтобы замокать ответ какого-то сервиса.</p></description></item><item><title>Вышла Selenide 6.8.1</title><link>https://ru.selenide.org/2022/09/27/selenide-6.8.1/</link><pubDate>Tue, 27 Sep 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/09/27/selenide-6.8.1/</guid><description><br>
<h1 id="добре">Добре!</h1>
<p>Ловите мини-багфикс <a href="https://github.com/selenide/selenide/milestone/165?closed=1">Selenide 6.8.1</a>.</p>
<p>Это касается только тех, кто напрямую вызывает в своих тестах</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="k">new</span><span class="w"> </span><span class="n">RemoteWebDriver</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="n">options</span><span class="p">)</span><span class="w">
</span></span></span></code></pre></div><p>и словил <code>NoClassDefFoundError</code> после обновления на <a href="https://ru.selenide.org/2022/09/24/selenide-6.8.0/">Selenide 6.8.0</a>.</p>
<br/>
<h3 id="pre-history">Предыстория</h3>
<p>Что такое OpenTelemetry?
Это какая-то штука, которую зачем-то добавили в Selenium 4, но людям забыли сообщить, зачем это вообще нужно и как
этим пользоваться. Ну и по факту всем пофиг, никто не пользуется.</p>
<p>Да и в самом селениде мы её явно выпилили в <a href="https://github.com/selenide/selenide/pull/1763">PR 1763</a>.</p></description></item><item><title>Вышла Selenide 6.8.0</title><link>https://ru.selenide.org/2022/09/24/selenide-6.8.0/</link><pubDate>Sat, 24 Sep 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/09/24/selenide-6.8.0/</guid><description><br>
<h1 id="недоброе-утро">Недоброе утро!</h1>
<p>Пока в мире творится здипец, мы выпускаем релиз <a href="https://github.com/selenide/selenide/milestone/161?closed=1">Selenide 6.8.0</a>.<br>
Фич немного, больше обновление зависимостей.</p>
<div class="blogpost-menu">
<ul>
<li><a href="#deep-shadow-selectors">Рекурсивный поиск по shadow dom</a></li>
<li><a href="#add-page-without-class">Метод page() без параметров</a></li>
<li><a href="#as-annotation">Аннотация @As</a></li>
<li><a href="#news">Новости</a></li>
</ul>
</div>
<h3 id="deep-shadow-selectors">Рекурсивный поиск по shadow dom</h3>
<p>Как вы знаете, в селениде <a href="https://ru.selenide.org/2020/03/18/selenide-5.10.0">есть возможность</a> искать элементы внутри shadow dom.
И даже в нескольких вложенных shadow dom:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">$</span><span class="p">(</span><span class="n">shadowCss</span><span class="p">(</span><span class="s">&#34;#reportButton&#34;</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="s">&#34;#shadow-host&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;#inner-shadow-host&#34;</span><span class="p">)).</span><span class="na">click</span><span class="p">();</span><span class="w">
</span></span></span></code></pre></div><p>Хорошо, что это возможно, но это по-прежнему требует ваших временных затрат на то, чтобы изучить dom и найти точные
локаторы для всех этих теневых элементов.</p></description></item><item><title>Вышла Selenide 6.7.4</title><link>https://ru.selenide.org/2022/09/05/selenide-6.7.4/</link><pubDate>Mon, 05 Sep 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/09/05/selenide-6.7.4/</guid><description><br>
<h1 id="привет">Привет!</h1>
<br>
<p>Я календарь перевернул,
и снова релиз <a href="https://github.com/selenide/selenide/milestone/164?closed=1">Selenide 6.7.4</a>.</p>
<br>
<h3 id="add-remote-read-setting">Добавили настройку <code>remoteReadTimeout</code></h3>
<p>Ещё недавно <a href="https://www.youtube.com/watch?v=iIIsZRHya-w&amp;ab_channel=DEVCLUB.EU">я жаловался</a> на то, что в селениде и так
слишком много настроек, но нам не оставили выбора.</p>
<p>В общем, мы добавили ещё одну настройку <code>Configuration.remoteReadTimeout</code> (также известную как <code>-Dselenide.remoteReadTimeout</code>).</p>
<p>Она пригодится тем, кто запускает браузер удалённо, но при этом браузеров на сервере не хватает, и приходится ждать в
очереди. И поэтому дефалтового таймаута в 1.5 минуты оказывается недостаточно, чтобы элементарно открыть браузер.</p></description></item><item><title>Вышла Selenide 6.7.3</title><link>https://ru.selenide.org/2022/08/27/selenide-6.7.3/</link><pubDate>Sat, 27 Aug 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/08/27/selenide-6.7.3/</guid><description><br>
<h1 id="привет">Привет!</h1>
<br>
<p>Вы читаете пресс-релиз <a href="https://github.com/selenide/selenide/milestone/163?closed=1">Selenide 6.7.3</a> в пиратском переводе.</p>
<p>А что делать, <em>все хотят кушать</em>&hellip;</p>
<br>
<h3 id="condition-partial-value">Добавили условие <code>partialValue</code></h3>
<p>По аналогии с <code>$.shouldHave(partialText(&quot;Добрый ко&quot;))</code> теперь появилась и <code>$.shouldHave(partialValue(&quot;cola&quot;))</code>.</p>
<p>Это если вы установили настройку <code>Configuration.textCheck = FULL_TEXT</code>, но хотите проверить значение какого-то инпута
или textarea частично, а не полностью.</p>
<p>См. <a href="https://github.com/selenide/selenide/issues/1923">issue 1923</a> и <a href="https://github.com/selenide/selenide/pull/1924">PR 1924</a>.</p>
<br>
<h3 id="condition-tag-name">Добавили условие <code>tagName</code></h3>
<p>Наверное, оно нечасто нужно, т.к. мы часто ищем элемент по тэгу, и уж потом проверяем другие атрибуты.
Да и вообще, тэг - это внутренности, которые пользователь не видит, поэтому, может, и проверять его не нужно.</p></description></item><item><title>Selenide puzzler</title><link>https://ru.selenide.org/2022/08/22/selenide-puzzler/</link><pubDate>Mon, 22 Aug 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/08/22/selenide-puzzler/</guid><description><br>
<h1 id="привет">Привет!</h1>
<p>Вы любите пазлеры?
Соскучались по пазлерам?
В последний раз мы показывали пазлеры аж в 2017 году, кто не смотрел - <a href="https://www.youtube.com/watch?v=y-ZyxTWHH08&amp;ab_channel=Heisenbug">смотрим</a>!</p>
<p>И вот наконец мы <a href="https://twitter.com/selenide/status/1560192824536088580">опубликовали в твиттере</a> новый пазлер:</p>
<blockquote>
<p>Одинаково ли работают эти строки? Или есть какая-то разница?</p>
</blockquote>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">1</span><span class="p">.</span><span class="w"> </span><span class="nf">$</span><span class="p">(</span><span class="s">&#34;.btn&#34;</span><span class="p">).</span><span class="na">shouldBe</span><span class="p">(</span><span class="n">visible</span><span class="p">,</span><span class="w"> </span><span class="n">enabled</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">2</span><span class="p">.</span><span class="w"> </span><span class="nf">$</span><span class="p">(</span><span class="s">&#34;.btn&#34;</span><span class="p">).</span><span class="na">shouldBe</span><span class="p">(</span><span class="n">visible</span><span class="p">).</span><span class="na">shouldBe</span><span class="p">(</span><span class="n">enabled</span><span class="p">);</span><span class="w">
</span></span></span></code></pre></div><h3 id="варианты-ответов">Варианты ответов</h3>
<p>Люди в твиттере и чатиках накидали разных вариантов:</p>
<ul>
<li>обе строчки работают одинаково (самый популярный ответ)</li>
<li>первый случай: логическое or, второй: логический and</li>
<li>Второй работает на %ожидание по умолчанию% дольше.</li>
<li>Первый должен отработать с одним тайм-аутом, второй должен с двумя тайм-аутами</li>
<li>в первом случае упадёт, если отсутствует любое из условий, во втором - если не visible, но enabled.</li>
</ul>
<h3 id="правильный-ответ">Правильный ответ</h3>
<p>В большинстве случаев оба варианта работают одинаково.</p></description></item><item><title>Вышла Selenide 6.7.2</title><link>https://ru.selenide.org/2022/08/14/selenide-6.7.2/</link><pubDate>Sun, 14 Aug 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/08/14/selenide-6.7.2/</guid><description><br>
<h1 id="привет">Привет!</h1>
<br>
<p>Мы выпустили мини-релиз <a href="https://github.com/selenide/selenide/milestone/162?closed=1">Selenide 6.7.2</a> с исправлением
утечек памяти.</p>
<p>Да-да, мы серьёзные ребята, у нас тоже бывают утечки.</p>
<p>Но не пугайтесь, они некритические. Вряд ли кто-то из вас их вообще замечал.</p>
<h3 id="fix-selenide-memory-leak">Исправили утечки с shutdown hooks в Selenide</h3>
<p>Если в тесте много-много раз открывать и закрывать вебдрайвер</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">1000</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">open</span><span class="p">(</span><span class="s">&#34;about:blank&#34;</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">closeWebDriver</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="p">}</span><span class="w">
</span></span></span></code></pre></div><p>то расход памяти потихоньку растёт:</p>
<p><img src="https://user-images.githubusercontent.com/279773/184475079-bbf8ee0f-d245-43ec-8e72-a010262e099c.png"
style="width: 100%" alt="Memory consumption: before"/></p></description></item><item><title>Вышла Selenide 6.7.0</title><link>https://ru.selenide.org/2022/08/04/selenide-6.7.0/</link><pubDate>Thu, 04 Aug 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/08/04/selenide-6.7.0/</guid><description><br>
<h1 id="привет">Привет!</h1>
<br>
<p>У нас случился толстенький релиз <a href="https://github.com/selenide/selenide/milestone/154?closed=1">Selenide 6.7.0</a></p>
<h3 id="holy-whole-string">Теперь <code>$.shouldHave(text)</code> может проверять текст целиком</h3>
<p>Испокон веков команда <code>$.shouldHave(text)</code> проверяла не текст целиком, а только подстроку:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"> <span class="p">&lt;</span><span class="nt">div</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;freedom-to&#34;</span><span class="p">&gt;</span>Britney Spears<span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="w"> </span><span class="n">$</span><span class="p">(</span><span class="s">&#34;#freedom-to&#34;</span><span class="p">).</span><span class="na">shouldHave</span><span class="p">(</span><span class="n">text</span><span class="p">(</span><span class="s">&#34;Brit&#34;</span><span class="p">));</span><span class="w"> </span><span class="c1">// was OK</span><span class="w">
</span></span></span></code></pre></div><p>Когда-то это показалось удачной идеей, потому что веб-страничка часто содержит всякие левые символы
(переводы строк, символы табуляции, непереносимые пробелы, множественные пробелы и т.п.).</p>
<p>Но похоже, это всё-таки была неудачная идея, т.к. новички по умолчанию предполагают, что текст проверяется целиком, и
выхватывают свою порцию WTF, когда обнаруживают, что все их проверки проверяли немного не то. :)</p></description></item><item><title>Вышла Selenide 6.6.6</title><link>https://ru.selenide.org/2022/07/01/selenide-6.6.6/</link><pubDate>Fri, 01 Jul 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/07/01/selenide-6.6.6/</guid><description><br>
<h1 id="добър-вечер">Добър вечер!</h1>
<br>
<p>У нас вышел ещё один мини-релиз <a href="https://github.com/selenide/selenide/milestone/160?closed=1">Selenide 6.6.6</a></p>
<h3 id="remove-deprecated-capabilities">Удалили старые капабилити</h3>
<p>Некоторые настройки вебдрайвера (которые селенид проставлял с испокон веков) были помечены как устаревшие, а с недавних
пор селениум начал ругаться на нах в логах.</p>
<p>Теперь селенид их больше не проставляет: <code>acceptSslCerts</code>, <code>handlesAlerts</code>, <code>javascriptEnabled</code>, <code>takesScreenshot</code>.
Мы не забудем вас, друзья! Вы служили нам верой и правдой больше 10 лет.</p>
<p>См. <a href="https://github.com/selenide/selenide/issues/1862">issue 1862</a>, <a href="https://github.com/selenide/selenide/issues/1866">issue 1866</a>
и <a href="https://github.com/selenide/selenide/pull/1870">PR 1870</a>.</p>
<br>
<h3 id="fix-clear-with-shortcut">Исправили ClearWithShortcut</h3>
<p>&hellip; при работе с вебдрайвером, завёрнутым в листенеры. Редкая ситуация, не заморачивайтесь.</p></description></item><item><title>Вышла Selenide 6.6.4</title><link>https://ru.selenide.org/2022/06/20/selenide-6.6.4/</link><pubDate>Mon, 20 Jun 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/06/20/selenide-6.6.4/</guid><description><br>
<h1 id="приветос">Приветос!</h1>
<br>
<p>У нас вышел ещё один мини-релиз <a href="https://github.com/selenide/selenide/milestone/158?closed=1">Selenide 6.6.4</a>.</p>
<h3 id="exact-texts-case-sensitive">Добавили условие <code>exactTextsCaseSensitive</code> для коллекций</h3>
<p>В селениде есть несколько проверок для текстов коллекций:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">$$</span><span class="p">(</span><span class="s">&#34;li&#34;</span><span class="p">).</span><span class="na">shouldHave</span><span class="p">(</span><span class="n">texts</span><span class="p">(</span><span class="s">&#34;foo&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;bar&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;baz&#34;</span><span class="p">));</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">$$</span><span class="p">(</span><span class="s">&#34;li&#34;</span><span class="p">).</span><span class="na">shouldHave</span><span class="p">(</span><span class="n">textsInAnyOrder</span><span class="p">(</span><span class="s">&#34;foo&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;bar&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;baz&#34;</span><span class="p">));</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">$$</span><span class="p">(</span><span class="s">&#34;li&#34;</span><span class="p">).</span><span class="na">shouldHave</span><span class="p">(</span><span class="n">exactTexts</span><span class="p">(</span><span class="s">&#34;foo&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;bar&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;baz&#34;</span><span class="p">));</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="c1">// и др.</span><span class="w">
</span></span></span></code></pre></div><p>Теперь к ним добавилась ещё одна:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">$$</span><span class="p">(</span><span class="s">&#34;li&#34;</span><span class="p">).</span><span class="na">shouldHave</span><span class="p">(</span><span class="n">exactTextsCaseSensitive</span><span class="p">(</span><span class="s">&#34;foo&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;bar&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;baz&#34;</span><span class="p">));</span><span class="w">
</span></span></span></code></pre></div><p>Спасибо <a href="https://github.com/ben-nc2">Ben Heap</a> за <a href="https://github.com/selenide/selenide/pull/1861">PR 1861</a>.</p>
<br>
<h3 id="selected-option-lazy-loaded">Сделали метод <code>$.getSelectedOption()</code> ленивым</h3>
<p>По задумке, (почти) все методы Селенида <a href="https://github.com/selenide/selenide/wiki/Lazy-loading">должны быть ленивыми</a>.</p>
<p>Например, просто вызов <code>$(&quot;#nope&quot;)</code> не должен падать, если элемента нет. Это позволяет писать отрицательные условия:</p></description></item><item><title>Вышла Selenide 6.6.3</title><link>https://ru.selenide.org/2022/06/12/selenide-6.6.3/</link><pubDate>Sun, 12 Jun 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/06/12/selenide-6.6.3/</guid><description><br>
<h1 id="здравствуйте-друзья">Здравствуйте, друзья!</h1>
<br>
<p>Мы выпустили мини-релиз <a href="https://github.com/selenide/selenide/milestone/157?closed=1">Selenide 6.6.3</a>.</p>
<h3 id="improve-click-timeout">Доработали таймаут для клика</h3>
<p>В версии 6.6.0 мы добавили опциональный параметр - таймаут для метода <code>$.click()</code>.<br>
Но оказалось, что тот параметр решал <a href="https://ru.selenide.org/2022/06/08/selenide-6.6.0/#click-timeout">лишь половину проблемы</a>.</p>
<p>Теперь мы исправили и вторую половину: вызов</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">$</span><span class="p">(</span><span class="s">&#34;#slow-link&#34;</span><span class="p">).</span><span class="na">click</span><span class="p">(</span><span class="n">usingDefaultMethod</span><span class="p">().</span><span class="na">timeout</span><span class="p">(</span><span class="n">ofSeconds</span><span class="p">(</span><span class="n">8</span><span class="p">)));</span><span class="w">
</span></span></span></code></pre></div><p>ждёт до 8 секунд как появления элемента <code>#slow-link</code>, так и последующей загрузки страницы.</p>
<p>См. <a href="https://github.com/selenide/selenide/issues/1572">issue 1572</a> и <a href="https://github.com/selenide/selenide/pull/1853">PR 1853</a>.</p>
<br>
<h3 id="selenide-6.6.2">Selenide 6.6.2</h3>
<p>А чуть раньше мы выпустили мини-релиз <a href="https://github.com/selenide/selenide/milestone/156?closed=1">Selenide 6.6.2</a> с обновлением на Selenium 4.2.2</p>
<p>См. <a href="https://github.com/selenide/selenide/pull/1851">PR 1851</a>.</p></description></item><item><title>Вышла Selenide 6.6.0</title><link>https://ru.selenide.org/2022/06/08/selenide-6.6.0/</link><pubDate>Wed, 08 Jun 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/06/08/selenide-6.6.0/</guid><description><br>
<h1 id="здравствуйте-друзья">Здравствуйте, друзья!</h1>
<br>
<p>Мы выпустили релиз <a href="https://github.com/selenide/selenide/milestone/152?closed=1">Selenide 6.6.0</a>.</p>
<h3 id="selenide-clear-with-shortcut">Появился новый плагин <code>selenide-clear-with-shortcut</code></h3>
<p>В Selenide 6.5.0 мы поменяли реализацию <code>$.clear()</code> со стандартной селениумовской на шорткат (&ldquo;Выделить всё&rdquo; - Удалить).
Оказалось, что этот шорткат не работал достаточно стабильно во всех браузерах, пришлось его доработать. Вроде
стабилизировался, но стал медленнее, чем просто <code>WebElement.clear()</code>. А поскольку это не всем нужно, решили в конце концов
в Селениде оставить старую добрую селениумовскую реализацию.</p>
<p>А кому нужна очистка шорткатом - может подключить себе наш новый плагин:</p></description></item><item><title>Вышла Selenide 6.5.0</title><link>https://ru.selenide.org/2022/05/17/selenide-6.5.0/</link><pubDate>Tue, 17 May 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/05/17/selenide-6.5.0/</guid><description><br>
<h1 id="здравствуйте-друзья">Здравствуйте, друзья!</h1>
<br>
<p>Мы выпустили релиз <a href="https://github.com/selenide/selenide/milestone/151?closed=1">Selenide 6.5.0</a>.</p>
<h3 id="теперь-можно-маскировать-пароли-в-отчётах">Теперь можно маскировать пароли в отчётах</h3>
<p>Иногда в автотестах приходится вбивать в поля пароли и другие секретные данные. И некоторые люди
переживают, что эти данные потом видны в отчётах (Allure или TextReport). И просят их как-нибудь скрыть.</p>
<p>Лично я не понимаю, почему кого-то должен волновать пароль от тестовой среды.
(Вы же не используете одни и те же пароли во всех средах? Вы же не гоняете тесты на продакшине?)</p></description></item><item><title>Вышла Selenide 6.4.0</title><link>https://ru.selenide.org/2022/04/07/selenide-6.4.0/</link><pubDate>Thu, 07 Apr 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/04/07/selenide-6.4.0/</guid><description><br>
<h1 id="здравствуйте-друзья">Здравствуйте, друзья!</h1>
<br>
<p>Мы выпустили релиз <a href="https://github.com/selenide/selenide/milestone/145?closed=1">Selenide 6.4.0</a>.</p>
<h3 id="показываем-и-алиас-и-локатор-при-падении-тестов">Показываем и алиас, и локатор при падении тестов</h3>
<p>Как вы знаете, в Селениде с помощью метода <code>as</code> можно задавать элементам &ldquo;алиас&rdquo;, или понятное имя.
Это полезно в тех случаях, когда нет хорошего локатора, и приходится писать какой-нибудь длинный сложный xpath, который
потом в отчётах сложно читать.</p>
<p>Например:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">$x</span><span class="p">(</span><span class="s">&#34;/long/ugly/xpath/div[2]/span[3]/li[4]&#34;</span><span class="p">).</span><span class="na">as</span><span class="p">(</span><span class="s">&#34;Login button&#34;</span><span class="p">).</span><span class="na">click</span><span class="p">();</span><span class="w">
</span></span></span></code></pre></div><p>И у нас всегда была дилемма: нужно ли</p>
<ol>
<li>показывать только алиас (плюс: легко читается, минус: не видно селектора - вдруг он нужен?)</li>
<li>показывать и алиас, и селектор (плюс: видно селектор, минус: трудно читается).</li>
</ol>
<br/>
<p>И вот наконец мы поняли, как правильно.
Начиная с версии 6.4.0, селенид будет:</p></description></item><item><title>Вышла Selenide 6.3.0</title><link>https://ru.selenide.org/2022/02/07/selenide-6.3.0/</link><pubDate>Mon, 07 Feb 2022 00:00:00 +0000</pubDate><author>andrei.solntsev@gmail.com (Andrei Solntsev)</author><guid>https://ru.selenide.org/2022/02/07/selenide-6.3.0/</guid><description><br>
<h1 id="здравствуйте-друзья">Здравствуйте, друзья!</h1>
<br>
<p>Мы зарелизили <a href="https://github.com/selenide/selenide/milestone/143?closed=1">Selenide 6.3.0</a>.</p>