{"id":320711,"date":"2021-04-01T21:00:37","date_gmt":"2021-04-01T21:00:37","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=320711"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=320711","title":{"rendered":"Scala + Selenium. \u0421\u0430\u043c\u044b\u0439 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0437\u043b\u0435\u0442 \u0432 \u041b\u0438\u0433\u0438 \u043d\u0430\u0446\u0438\u0439 \u0423\u0415\u0424\u0410?"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p><em>\u041a\u0430\u043a\u043e\u0439 \u0441\u0430\u043c\u044b\u0439 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0437\u043b\u0435\u0442 \u0432 \u041b\u0438\u0433\u0438 \u043d\u0430\u0446\u0438\u0439 \u0423\u0415\u0424\u0410?<\/em><\/p>\n<p>\u0422.\u043a. \u0446\u0435\u043b\u044c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u0438\u0448\u0443\u0442\u0441\u044f Selenium-\u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u044b \u043d\u0430 Scala, \u0430 \u043d\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0442\u0440\u0438\u0433\u0443\u044e\u0449\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u043f\u0440\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f \u0432 \u043d\u0435\u0432\u0435\u0434\u0435\u043d\u0438\u0438, \u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u0430\u0442\u044c \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442, \u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u044b.<\/p>\n<p>\u0421 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u041b\u0438\u0433\u0438 \u043d\u0430\u0446\u0438\u0439 \u0423\u0415\u0424\u0410 \u043f\u0440\u043e\u0448\u043b\u043e \u0446\u0435\u043b\u044b\u0445 \u0434\u0432\u0430 \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430 \u0438 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>\u0420\u043e\u0441\u0441\u0438\u0438 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043f\u043e\u0434\u0440\u044f\u0434 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0430 \u0432\u0442\u043e\u0440\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430 B (\u043e\u0431\u0430 \u0440\u0430\u0437\u0430 \u0431\u043b\u0435\u0441\u0442\u044f\u0449\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0438 \u0441\u0442\u043e\u043b\u044c \u0436\u0435 \u0431\u043b\u0435\u0441\u0442\u044f\u0449\u0435-\u043f\u043e\u0437\u043e\u0440\u043d\u043e \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f) \u0438 \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442 \u0432 \u0442\u043e\u043c \u0436\u0435 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435 B &#8212; \u0432\u043e\u0442 \u044d\u0442\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c (\u0441\u043e \u0441\u043b\u0435\u0437\u0430\u043c\u0438 \u043d\u0430 \u0433\u043b\u0430\u0437\u0430\u0445)<\/p>\n<\/li>\n<li>\n<p>\u0421\u0431\u043e\u0440\u043d\u0430\u044f \u0422\u0443\u0440\u0446\u0438\u0438 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043f\u043e\u0434\u0440\u044f\u0434 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u0441\u0432\u043e\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 (\u043e\u0431\u0430 \u0440\u0430\u0437\u0430 \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439, \u0433\u0434\u0435 \u0431\u044b\u043b\u0430 \u0438 \u0441\u0431\u043e\u0440\u043d\u0430\u044f \u0420\u043e\u0441\u0441\u0438\u0438), \u043d\u043e \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442 \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u0438\u043c \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u043e\u043c \u043d\u0438\u0436\u0435 &#8212; \u0432 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435 \u0421<\/p>\n<\/li>\n<li>\n<p>\u0410 \u0432\u043e\u0442 \u0438 \u043e\u0431\u0435\u0449\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0439\u043b\u0435\u0440: \u0441\u0431\u043e\u0440\u043d\u0430\u044f \u0412\u0435\u043d\u0433\u0440\u0438\u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u0437\u0430\u043d\u044f\u043b\u0430 \u0432\u0442\u043e\u0440\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u043f\u043e \u0441\u0438\u043b\u0435 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435 \u0421, \u043d\u043e \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442 \u0432 \u0441\u0430\u043c\u043e\u043c \u0441\u0438\u043b\u044c\u043d\u043e\u043c \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435 \u0410 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0442\u043e\u043f-\u0441\u0431\u043e\u0440\u043d\u044b\u043c\u0438 &#8212; \u0432\u043e\u0442 \u044d\u0442\u043e \u0444\u0435\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u0437\u043b\u0435\u0442.   \u0416\u0430\u043b\u044c \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u043b \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435, \u0433\u0434\u0435 \u0431\u044b\u043b\u0430 \u0438 \u0441\u0431\u043e\u0440\u043d\u0430\u044f \u0420\u043e\u0441\u0441\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0410 \u043a\u0430\u043a \u0436\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043d\u044b\u0435? \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438\u043d\u0442\u0440\u0438\u0433\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0440\u043e\u0447\u044c \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0430, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439. \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/www.transfermarkt.com\/\" rel=\"noopener noreferrer nofollow\">transfermarkt.com<\/a>: <a href=\"https:\/\/www.transfermarkt.com\/uefa-nations-league-a\/startseite\/pokalwettbewerb\/UNLA\/saison_id\/2020\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u0431\u043e\u0440\u043d\u044b\u0445 \u0432 \u041b\u0438\u0433\u0435 \u043d\u0430\u0446\u0438\u0439<\/a><\/p>\n<p><strong><em>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u043f\u043e\u043d\u044f\u0442\u0438\u044f\u043c\u0438<\/em><\/strong><\/p>\n<p>\u0412 \u043b\u0438\u0433\u0435 \u043d\u0430\u0446\u0438\u0439 \u0423\u0415\u0424\u0410 4 \u043f\u043e \u0441\u0438\u043b\u0435 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430: A (\u0441\u0430\u043c\u044b\u0439 \u0441\u0438\u043b\u044c\u043d\u044b\u0439), B, C, D. \u041f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0432 \u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d, \u0437\u0430\u043d\u044f\u0432\u0448\u0438\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u0435\u0441\u0442\u043e &#8212; \u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u043e\u043c \u043d\u0438\u0436\u0435. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u0432 \u0441\u0438\u043b\u044c\u043d\u044b\u0445 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430\u0445 \u0431\u044b\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e 3 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0423\u0415\u0424\u0410 \u0440\u0435\u0448\u0438\u043b\u0430, \u0447\u0442\u043e \u0442\u043e\u043f-\u043c\u0430\u0442\u0447\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430\u0445, \u043a\u0440\u043e\u043c\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043b\u0430\u0431\u043e\u0433\u043e (D), \u0441\u0442\u0430\u043b\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043f\u043e 4 \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u0434\u043e\u0443\u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043b\u044c\u043d\u044b\u0445 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430 \u0422\u0443\u0440\u0446\u0438\u044f, \u0437\u0430\u043d\u044f\u0432\u0448\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u0435\u0441\u0442\u043e, \u043d\u0435 \u0432\u044b\u043b\u0435\u0442\u0435\u043b\u0430, \u0430 \u0412\u0435\u043d\u0433\u0440\u0438\u044f, \u0437\u0430\u043d\u044f\u0432\u0448\u0430\u044f \u0432\u0442\u043e\u0440\u043e\u0435 &#8212; \u043f\u043e\u0434\u043d\u044f\u043b\u0430\u0441\u044c \u0432\u044b\u0448\u0435. <\/p>\n<p>\u0421\u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u0432\u0443\u0445 \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435\u0439, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430 \u0441\u043e\u0441\u0442\u0430\u0432 \u0433\u0440\u0443\u043f\u043f \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430 \u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0431\u043e\u0440\u043d\u043e\u0439 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u0438\u0434\u0435: <em>\u0420\u043e\u0441\u0441\u0438\u044f (B-B-B)<\/em>. <\/p>\n<p><strong><em>\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430 \u041b\u0438\u0433\u0438 \u041d\u0430\u0446\u0438\u0439 \u0423\u0415\u0424\u0410<\/em><\/strong><\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0433\u0440\u0443\u043f\u043f\u044b <strong><em>X <\/em><\/strong>\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/www.transfermarkt.com\/\" rel=\"noopener noreferrer nofollow\">transfermarkt.com<\/a><\/p>\n<\/li>\n<li>\n<p>\u0412 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u043c\u0435\u043d\u044e \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043f\u0443\u043d\u043a\u0442 <strong><em>Competitions<\/em><\/strong><\/p>\n<\/li>\n<li>\n<p>\u0412\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u043c \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0443\u043d\u043a\u0442 <strong><em>UEFA Nations League X<\/em><\/strong><\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c12\/ef6\/acd\/c12ef6acd4a0b9112da0db37a8cd78ea.png\" width=\"909\" height=\"589\"><figcaption><\/figcaption><\/figure>\n<p>Xpath \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u0441\u0441\u044b\u043b\u043e\u043a \u043c\u0435\u043d\u044e <strong><em>Competitions <\/em><\/strong>\u0438 <strong><em>UEFA Nations League X<\/em><\/strong> \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<pre><code class=\"scala\">val competitionsLink: Query         = xpath(\"\/\/a[normalize-space(.)='Competitions']\") def groupLink(group: String): Query = xpath(s\"\/\/a[normalize-space(.)='UEFA Nations League $group']\")<\/code><\/pre>\n<p>\u041c\u044b \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>normalize-space<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043c\u0435\u043d\u044e <strong><em>Competitions <\/em><\/strong>\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u043e <em>Competitions<\/em>, \u043d\u043e \u0435\u0449\u0451 \u0438 \u043a\u0443\u0447\u0443 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u0441 \u043e\u0434\u043d\u0438\u043c \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043e\u043c \u0441\u0442\u0440\u043e\u043a\u0438: <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0bc\/877\/0db\/0bc8770db1ce10fe13d171526d490bd6.png\" width=\"941\" height=\"147\"><figcaption><\/figcaption><\/figure>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u0435 <code>\/\/a[normalize-space(.)='Competitions']<\/code><em> <\/em>\u043c\u044b \u0438\u0449\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0442\u044d\u0433\u043e\u043c <code>a<\/code>, \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u0440\u0430\u0432\u043d\u043e <strong><em>Competitions<\/em><\/strong>.<\/p>\n<p>\u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 query \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"scala\">new WebDriverWait(driver, Duration.ofSeconds(timeout)).until(ExpectedConditions.visibilityOfElementLocated(query.by))<\/code><\/pre>\n<p>\u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u0435\u0440\u043d\u0435\u0442\u0441\u044f \u0432\u0438\u0434\u0438\u043c\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 WebElement, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0442\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f:<\/p>\n<pre><code class=\"scala\">competitionsLink.waitVisible().click() groupLink(group).waitVisible().click()<\/code><\/pre>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0433\u0440\u0443\u043f\u043f\u044b \u041b\u0438\u0433\u0438 \u041d\u0430\u0446\u0438\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u043e\u0436\u0434\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 css-\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u043c <code>div.dataName &gt; h1<\/code>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e04\/869\/ad2\/e04869ad2d5d3c77f577638f3edf0c2f.png\" width=\"686\" height=\"295\"><figcaption><\/figcaption><\/figure>\n<p>\u0438 \u043f\u043e\u0434\u043e\u0436\u0434\u0435\u043c, \u043a\u043e\u0433\u0434\u0430 \u0432 \u043d\u0451\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0441\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b:<\/p>\n<pre><code class=\"scala\">val header: Query = cssSelector(\"div.dataName &gt; h1\")  new WebDriverWait(driver, Duration.ofSeconds(timeout)).until(ExpectedConditions.textToBe(header.by, s\"UEFA Nations League $group\"))<\/code><\/pre>\n<p><strong><em>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435<\/em><\/strong><\/p>\n<p>\u0412 \u043f\u0440\u0430\u0432\u043e\u043c \u043d\u0438\u0436\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430 \u0435\u0441\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439 \u0441\u0431\u043e\u0440\u043d\u044b\u0445:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5c1\/0ad\/bb3\/5c10adbb30c860ba9241d135e218f856.png\" width=\"439\" height=\"232\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0441\u0431\u043e\u0440\u043d\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c xpath-\u043b\u043e\u043a\u0430\u0442\u043e\u0440 <code>\/\/table\/\/tr[td[@class='rechts']]<\/code>. \u0412\u0441\u0435\u0433\u043e \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e 16 \u0441\u0442\u0440\u043e\u043a \u0438 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c &#8212; \u0432\u044b\u0443\u0434\u0438\u0442\u044c \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u0435\u0441\u0442\u043e \u0441\u0431\u043e\u0440\u043d\u043e\u0439 (\u043e\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u0430\u0432 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u043e\u0432 \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435) \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u044b. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, <a href=\"https:\/\/www.scalatest.org\/plus\/selenium\" rel=\"noopener noreferrer nofollow\">Scala \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f Selenium<\/a> \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u0435\u0434\u043d\u0430\u044f \u0438 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0434\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f Java-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439: <\/p>\n<pre><code class=\"scala\">val resultRow: Query = xpath(\"\/\/table\/\/tr[td[@class='rechts']]\")  import scala.jdk.CollectionConverters._ import org.openqa.selenium._  val webDriver: WebDriver = ???  def results: mutable.Buffer[(Int, String)] =   webDriver.findElements(resultRow.by).asScala.map { el =&gt;     {       val place = el.findElement(By.xpath(\".\/\/td[@class='rechts']\")).getText       val name  = el.findElement(By.xpath(\".\/\/td[contains(@class, 'hauptlink')]\")).getText       (place.toInt, name)     }   }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 xpath-\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u043c<code> \/\/table\/\/tr[td[@class='rechts']]<\/code><\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c <code>java.util.List<\/code><em> <\/em>\u0432 <code>scala.collection.mutable.Buffer<\/code><\/p>\n<\/li>\n<li>\n<p> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0434\u0432\u0430 \u0435\u0433\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043f\u043e\u0434\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430: <code>.\/\/td[@class='rechts']<\/code><em> <\/em>&#8212; \u043c\u0435\u0441\u0442\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, <code> .\/\/td[contains(@class, 'hauptlink')] <\/code>&#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u044b<\/p>\n<\/li>\n<li>\n<p>\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0438\u0437 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430<strong> D<\/strong>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>Place<\/p>\n<\/td>\n<td>\n<p>Country<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>1<\/p>\n<\/td>\n<td>\n<p>Faroe Islands<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>2<\/p>\n<\/td>\n<td>\n<p>Malta         <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>3<\/p>\n<\/td>\n<td>\n<p>Latvia        <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>4<\/p>\n<\/td>\n<td>\n<p>Andorra       <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>1<\/p>\n<\/td>\n<td>\n<p>Gibraltar     <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>2<\/p>\n<\/td>\n<td>\n<p>Liechtenstein <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>3<\/p>\n<\/td>\n<td>\n<p>San Marino    <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong><em>Previous results<\/em><\/strong><\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u0435\u0437\u043e\u043d\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 \u0444\u0438\u043b\u044c\u0442\u0440\u0435 <strong>Filter by season:<\/strong> \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong>18\/19<\/strong> \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 <strong>Show<\/strong>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/075\/c03\/85e\/075c0385ee9b1a84def8a84b1492cc7b.png\" width=\"861\" height=\"345\"><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a:<\/p>\n<ul>\n<li>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0441\u0435\u0437\u043e\u043d\u043e\u0432 (\u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0441 css-\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u043c <code>a.chzn-single &gt; div &gt; b<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0442\u0435\u043c \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0441\u0435\u0437\u043e\u043d (\u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0443 \u0441 xpath-\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u043c <code>\/\/li[.='18\/19']<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0441\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0441\u0435\u0437\u043e\u043d\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0442\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 <strong>Show <\/strong>(css-\u043b\u043e\u043a\u0430\u0442\u043e\u0440 <code>input[value='Show']<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0418 \u043f\u043e\u0434\u043e\u0436\u0434\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u0435\u0437\u043e\u043d\u0430 (\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0436\u0434\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 url \u0442\u0435\u043a\u0443\u0449\u0435\u0439  \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0442\u0430\u043d\u0435\u0442 \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 <strong>saison_id=2018<\/strong> (url \u043d\u0430 \u043d\u0435\u043c\u0435\u0446\u043a\u043e\u043c))<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"scala\">val selectSeason: Query   = cssSelector(\"a.chzn-single &gt; div &gt; b\") val previousSeason: Query = xpath(\"\/\/li[.='18\/19']\") val show: Query           = cssSelector(\"input[value='Show']\")  def selectPreviousSeason: Boolean = {   selectSeason.waitVisible().click()   previousSeason.waitVisible().click()   new WebDriverWait(driver, Duration.ofSeconds(timeout)).until(invisibilityOfElementLocated(previousSeason.by))   clickOn(show)   new WebDriverWait(driver, Duration.ofSeconds(timeout)).until(wd =&gt; wd.getCurrentUrl.endsWith(\"saison_id=2018\")) }<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0435\u0434\u0438\u043d\u043e \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441\u0430\u0439\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f &#8216;A&#8217;, &#8216;B&#8217;, &#8216;C&#8217;, &#8216;D&#8217; \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c:<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443<\/p>\n<\/li>\n<li>\n<p>\u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0438\u0445<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0441\u0435\u0437\u043e\u043d<\/p>\n<\/li>\n<li>\n<p>\u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0438\u0445<\/p>\n<\/li>\n<\/ul>\n<p>P.S. \u0417\u0430\u0431\u0435\u0433\u0430\u044f \u0432\u043f\u0435\u0440\u0435\u0434, \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0437\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f <strong>Macedonia<\/strong> \u0441\u043c\u0435\u043d\u0438\u043b\u0430 \u0438\u043c\u044f \u043d\u0430 <strong>North Macedonia<\/strong> &#8212; \u044d\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0443\u0447\u0435\u0441\u0442\u044c.  <\/p>\n<pre><code class=\"scala\">case class Result(number: Int, group: Char, place: Int, country: String)  val mainPage = new MainPage go to mainPage  val results: ArrayBuffer[Result] = ArrayBuffer.empty[Result]  Seq('A', 'B', 'C', 'D').foreach(group =&gt; {   val leagueGroupPage = mainPage.goToGroup(group.toString)   val groupResult     = leagueGroupPage.results   groupResult.foreach { case (place, country) =&gt; results += Result(2, group, place, country) }   leagueGroupPage.selectPreviousSeason   leagueGroupPage.waitLoad(group.toString)   val previousSeasonResult = leagueGroupPage.results   previousSeasonResult.foreach {     case (place, country) =&gt;       results += Result(1, group, place, country.replace(\"Macedonia\", \"North Macedonia\"))   } })<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b.<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0443 \u043d\u0430\u0441 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <code>case class Result(number: Int, group: Char, place: Int, country: String)<\/code>, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u044d\u0442\u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u043a \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <code>case class ParsedResult(country: String, firstSeason: (Char, Int), secondSeason: (Char, Int), thirdSeason: Char, progress: (Int, Int))<\/code>, \u0433\u0434\u0435 \u0441\u0435\u0437\u043e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0432\u0438\u0434\u0435  <strong><em>tuple (\u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d, \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e)<\/em><\/strong>, \u0430 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 &#8212; \u0438\u0437 \u0434\u0432\u0443\u0445 \u0446\u0438\u0444\u0440, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u043f\u043e \u0438\u0442\u043e\u0433\u0430\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430: <strong>1<\/strong> (\u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435) | <strong>0<\/strong> | <strong>-1<\/strong> (\u043f\u043e\u043d\u0438\u0436\u0435\u043d\u0438\u0435)<\/p>\n<pre><code class=\"scala\">import scala.collection.mutable.ArrayBuffer  case class Result(number: Int = 0, group: Char = 'E', place: Int = 0, country: String = \"\") case class ParsedResult(country: String,                         firstSeason: (Char, Int),                         secondSeason: (Char, Int),                         thirdSeason: Char,                         progress: (Int, Int))  val results: ArrayBuffer[Result] = ???  val parsedResults = results         .groupBy(_.country)         .view         .mapValues(seq =&gt; {           val country: String           = seq.head.country           val firstRes                  = seq.find(_.number == 1).getOrElse(Result())           val firstSeason: (Char, Int)  = (firstRes.group, firstRes.place)           val secondRes                 = seq.find(_.number == 2).getOrElse(Result())           val secondSeason: (Char, Int) = (secondRes.group, secondRes.place)           val thirdSeason: Char =             if (secondSeason._2 == 1 &amp;&amp; secondSeason._1 != 'A') (secondSeason._1 - 1).toChar             else if (secondSeason._2 == 4 &amp;&amp; secondSeason._1 != 'D') (secondSeason._1 + 1).toChar             else secondSeason._1           val progress: (Int, Int) = (firstSeason._1 - secondSeason._1, secondSeason._1 - thirdSeason)           ParsedResult(country, firstSeason, secondSeason, thirdSeason, progress)         })         .values         .groupBy(_.progress)<\/code><\/pre>\n<p><strong><em>\u0421\u0430\u043c\u044b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043d\u044b\u0435?<\/em><\/strong><\/p>\n<p>\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u0431\u043e\u0440\u043d\u044b\u0445, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0445 \u043f\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0443.<\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p> <strong><em>\u0421\u0443\u043f\u0435\u0440\u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 (\u0441\u0431\u043e\u0440\u043d\u044b\u0435, \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0432\u0448\u0438\u0435 \u043f\u0440\u043e\u0440\u044b\u0432 \u0447\u0435\u0440\u0435\u0437 \u0434\u0432\u0430 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430) &#8212; 2<\/em><\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Country <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>1st <\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>2nd<\/p>\n<\/td>\n<td>\n<p>3rd <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong><em>Hungary <\/em><\/strong><\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>C(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B(1)<\/p>\n<\/td>\n<td>\n<p>A<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong><em>Armenia <\/em><\/strong><\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>D(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C(1)<\/p>\n<\/td>\n<td>\n<p>B<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u043e\u0438\u0441\u0442\u0438\u043d\u0435 \u0444\u0435\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0412\u0435\u043d\u0433\u0440\u0438\u044f \u0438 \u0410\u0440\u043c\u0435\u043d\u0438\u044f: \u0438 \u0432\u043e\u0442 \u0443\u0436\u0435 \u0441\u0431\u043e\u0440\u043d\u0430\u044f \u0438\u0437 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0438\u0437\u0448\u0435\u0433\u043e \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0432 \u0442\u043e\u0439 \u0436\u0435 \u043b\u0438\u0433\u0435, \u0447\u0442\u043e \u0438 \u0420\u043e\u0441\u0441\u0438\u044f.<\/p>\n<p><strong><em>\u041f\u043e\u0434\u043d\u044f\u043b\u0438\u0441\u044c \u0438 \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u043b\u0438\u0441\u044c &#8212; 13<\/em><\/strong><\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Country <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>1st <\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>2nd<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>3rd <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Denmark <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>B(1)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>A(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>A<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Romania <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>C(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B(3)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Scotland <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>C(1)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Finland <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>C(1)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Israel <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>C(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B(3)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Norway <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>C(1)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Luxembourg <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>D(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Azerbaijan <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>D(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C(3)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Georgia <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>D(1)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C(3)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Belarus <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>D(1)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>Kosovo <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>D(1)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C(3)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"298\" width=\"298\">\n<p>North Macedonia<\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>D(1)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u0438 \u0442.\u0434. \u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 <a href=\"https:\/\/artemkorsakov.github.io\/scalenium\/docs\/examples\/nations-league.html\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>. \u0410 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 <a href=\"https:\/\/github.com\/artemkorsakov\/scalenium\/blob\/master\/examples\/src\/test\/scala\/com\/github\/artemkorsakov\/examples\/tests\/NationsLeagueSpec.scala\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f: <a href=\"https:\/\/habr.com\/en\/post\/549264\/\" rel=\"noopener noreferrer nofollow\">Scala + Selenium. \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0432 \u0441\u0431\u043e\u0440\u043d\u043e\u0439 \u0438\u043c\u0435\u044e\u0442 \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0441\u0442\u0432\u0430?<\/a><\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/550258\/\"> https:\/\/habr.com\/ru\/post\/550258\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p><em>\u041a\u0430\u043a\u043e\u0439 \u0441\u0430\u043c\u044b\u0439 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0437\u043b\u0435\u0442 \u0432 \u041b\u0438\u0433\u0438 \u043d\u0430\u0446\u0438\u0439 \u0423\u0415\u0424\u0410?<\/em><\/p>\n<p>\u0422.\u043a. \u0446\u0435\u043b\u044c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u0438\u0448\u0443\u0442\u0441\u044f Selenium-\u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u044b \u043d\u0430 Scala, \u0430 \u043d\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0442\u0440\u0438\u0433\u0443\u044e\u0449\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u043f\u0440\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f \u0432 \u043d\u0435\u0432\u0435\u0434\u0435\u043d\u0438\u0438, \u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u0430\u0442\u044c \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442, \u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u044b.<\/p>\n<p>\u0421 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u041b\u0438\u0433\u0438 \u043d\u0430\u0446\u0438\u0439 \u0423\u0415\u0424\u0410 \u043f\u0440\u043e\u0448\u043b\u043e \u0446\u0435\u043b\u044b\u0445 \u0434\u0432\u0430 \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430 \u0438 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>\u0420\u043e\u0441\u0441\u0438\u0438 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043f\u043e\u0434\u0440\u044f\u0434 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0430 \u0432\u0442\u043e\u0440\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430 B (\u043e\u0431\u0430 \u0440\u0430\u0437\u0430 \u0431\u043b\u0435\u0441\u0442\u044f\u0449\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0438 \u0441\u0442\u043e\u043b\u044c \u0436\u0435 \u0431\u043b\u0435\u0441\u0442\u044f\u0449\u0435-\u043f\u043e\u0437\u043e\u0440\u043d\u043e \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f) \u0438 \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442 \u0432 \u0442\u043e\u043c \u0436\u0435 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435 B &#8212; \u0432\u043e\u0442 \u044d\u0442\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c (\u0441\u043e \u0441\u043b\u0435\u0437\u0430\u043c\u0438 \u043d\u0430 \u0433\u043b\u0430\u0437\u0430\u0445)<\/p>\n<\/li>\n<li>\n<p>\u0421\u0431\u043e\u0440\u043d\u0430\u044f \u0422\u0443\u0440\u0446\u0438\u0438 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043f\u043e\u0434\u0440\u044f\u0434 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u0441\u0432\u043e\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 (\u043e\u0431\u0430 \u0440\u0430\u0437\u0430 \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439, \u0433\u0434\u0435 \u0431\u044b\u043b\u0430 \u0438 \u0441\u0431\u043e\u0440\u043d\u0430\u044f \u0420\u043e\u0441\u0441\u0438\u0438), \u043d\u043e \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442 \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u0438\u043c \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u043e\u043c \u043d\u0438\u0436\u0435 &#8212; \u0432 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435 \u0421<\/p>\n<\/li>\n<li>\n<p>\u0410 \u0432\u043e\u0442 \u0438 \u043e\u0431\u0435\u0449\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0439\u043b\u0435\u0440: \u0441\u0431\u043e\u0440\u043d\u0430\u044f \u0412\u0435\u043d\u0433\u0440\u0438\u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u0437\u0430\u043d\u044f\u043b\u0430 \u0432\u0442\u043e\u0440\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u043f\u043e \u0441\u0438\u043b\u0435 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435 \u0421, \u043d\u043e \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442 \u0432 \u0441\u0430\u043c\u043e\u043c \u0441\u0438\u043b\u044c\u043d\u043e\u043c \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435 \u0410 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0442\u043e\u043f-\u0441\u0431\u043e\u0440\u043d\u044b\u043c\u0438 &#8212; \u0432\u043e\u0442 \u044d\u0442\u043e \u0444\u0435\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u0437\u043b\u0435\u0442.   \u0416\u0430\u043b\u044c \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u043b \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435, \u0433\u0434\u0435 \u0431\u044b\u043b\u0430 \u0438 \u0441\u0431\u043e\u0440\u043d\u0430\u044f \u0420\u043e\u0441\u0441\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0410 \u043a\u0430\u043a \u0436\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043d\u044b\u0435? \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438\u043d\u0442\u0440\u0438\u0433\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0440\u043e\u0447\u044c \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0430, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439. \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/www.transfermarkt.com\/\" rel=\"noopener noreferrer nofollow\">transfermarkt.com<\/a>: <a href=\"https:\/\/www.transfermarkt.com\/uefa-nations-league-a\/startseite\/pokalwettbewerb\/UNLA\/saison_id\/2020\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u0431\u043e\u0440\u043d\u044b\u0445 \u0432 \u041b\u0438\u0433\u0435 \u043d\u0430\u0446\u0438\u0439<\/a><\/p>\n<p><strong><em>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u043f\u043e\u043d\u044f\u0442\u0438\u044f\u043c\u0438<\/em><\/strong><\/p>\n<p>\u0412 \u043b\u0438\u0433\u0435 \u043d\u0430\u0446\u0438\u0439 \u0423\u0415\u0424\u0410 4 \u043f\u043e \u0441\u0438\u043b\u0435 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430: A (\u0441\u0430\u043c\u044b\u0439 \u0441\u0438\u043b\u044c\u043d\u044b\u0439), B, C, D. \u041f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0432 \u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d, \u0437\u0430\u043d\u044f\u0432\u0448\u0438\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u0435\u0441\u0442\u043e &#8212; \u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u043e\u043c \u043d\u0438\u0436\u0435. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u0432 \u0441\u0438\u043b\u044c\u043d\u044b\u0445 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430\u0445 \u0431\u044b\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e 3 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0423\u0415\u0424\u0410 \u0440\u0435\u0448\u0438\u043b\u0430, \u0447\u0442\u043e \u0442\u043e\u043f-\u043c\u0430\u0442\u0447\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430\u0445, \u043a\u0440\u043e\u043c\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043b\u0430\u0431\u043e\u0433\u043e (D), \u0441\u0442\u0430\u043b\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043f\u043e 4 \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u0434\u043e\u0443\u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043b\u044c\u043d\u044b\u0445 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430 \u0422\u0443\u0440\u0446\u0438\u044f, \u0437\u0430\u043d\u044f\u0432\u0448\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u0435\u0441\u0442\u043e, \u043d\u0435 \u0432\u044b\u043b\u0435\u0442\u0435\u043b\u0430, \u0430 \u0412\u0435\u043d\u0433\u0440\u0438\u044f, \u0437\u0430\u043d\u044f\u0432\u0448\u0430\u044f \u0432\u0442\u043e\u0440\u043e\u0435 &#8212; \u043f\u043e\u0434\u043d\u044f\u043b\u0430\u0441\u044c \u0432\u044b\u0448\u0435. <\/p>\n<p>\u0421\u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u0432\u0443\u0445 \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435\u0439, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430 \u0441\u043e\u0441\u0442\u0430\u0432 \u0433\u0440\u0443\u043f\u043f \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430 \u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0431\u043e\u0440\u043d\u043e\u0439 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u0438\u0434\u0435: <em>\u0420\u043e\u0441\u0441\u0438\u044f (B-B-B)<\/em>. <\/p>\n<p><strong><em>\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430 \u041b\u0438\u0433\u0438 \u041d\u0430\u0446\u0438\u0439 \u0423\u0415\u0424\u0410<\/em><\/strong><\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0433\u0440\u0443\u043f\u043f\u044b <strong><em>X <\/em><\/strong>\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/www.transfermarkt.com\/\" rel=\"noopener noreferrer nofollow\">transfermarkt.com<\/a><\/p>\n<\/li>\n<li>\n<p>\u0412 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u043c\u0435\u043d\u044e \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043f\u0443\u043d\u043a\u0442 <strong><em>Competitions<\/em><\/strong><\/p>\n<\/li>\n<li>\n<p>\u0412\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u043c \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0443\u043d\u043a\u0442 <strong><em>UEFA Nations League X<\/em><\/strong><\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>Xpath \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u0441\u0441\u044b\u043b\u043e\u043a \u043c\u0435\u043d\u044e <strong><em>Competitions <\/em><\/strong>\u0438 <strong><em>UEFA Nations League X<\/em><\/strong> \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<pre><code class=\"scala\">val competitionsLink: Query         = xpath(\"\/\/a[normalize-space(.)='Competitions']\") def groupLink(group: String): Query = xpath(s\"\/\/a[normalize-space(.)='UEFA Nations League $group']\")<\/code><\/pre>\n<p>\u041c\u044b \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>normalize-space<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043c\u0435\u043d\u044e <strong><em>Competitions <\/em><\/strong>\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u043e <em>Competitions<\/em>, \u043d\u043e \u0435\u0449\u0451 \u0438 \u043a\u0443\u0447\u0443 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u0441 \u043e\u0434\u043d\u0438\u043c \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043e\u043c \u0441\u0442\u0440\u043e\u043a\u0438: <\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u0435 <code>\/\/a[normalize-space(.)='Competitions']<\/code><em> <\/em>\u043c\u044b \u0438\u0449\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0442\u044d\u0433\u043e\u043c <code>a<\/code>, \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u0440\u0430\u0432\u043d\u043e <strong><em>Competitions<\/em><\/strong>.<\/p>\n<p>\u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 query \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"scala\">new WebDriverWait(driver, Duration.ofSeconds(timeout)).until(ExpectedConditions.visibilityOfElementLocated(query.by))<\/code><\/pre>\n<p>\u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u0435\u0440\u043d\u0435\u0442\u0441\u044f \u0432\u0438\u0434\u0438\u043c\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 WebElement, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0442\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f:<\/p>\n<pre><code class=\"scala\">competitionsLink.waitVisible().click() groupLink(group).waitVisible().click()<\/code><\/pre>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0433\u0440\u0443\u043f\u043f\u044b \u041b\u0438\u0433\u0438 \u041d\u0430\u0446\u0438\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u043e\u0436\u0434\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 css-\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u043c <code>div.dataName &gt; h1<\/code>:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0438 \u043f\u043e\u0434\u043e\u0436\u0434\u0435\u043c, \u043a\u043e\u0433\u0434\u0430 \u0432 \u043d\u0451\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0441\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b:<\/p>\n<pre><code class=\"scala\">val header: Query = cssSelector(\"div.dataName &gt; h1\")  new WebDriverWait(driver, Duration.ofSeconds(timeout)).until(ExpectedConditions.textToBe(header.by, s\"UEFA Nations League $group\"))<\/code><\/pre>\n<p><strong><em>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435<\/em><\/strong><\/p>\n<p>\u0412 \u043f\u0440\u0430\u0432\u043e\u043c \u043d\u0438\u0436\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430 \u0435\u0441\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439 \u0441\u0431\u043e\u0440\u043d\u044b\u0445:<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0441\u0431\u043e\u0440\u043d\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c xpath-\u043b\u043e\u043a\u0430\u0442\u043e\u0440 <code>\/\/table\/\/tr[td[@class='rechts']]<\/code>. \u0412\u0441\u0435\u0433\u043e \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e 16 \u0441\u0442\u0440\u043e\u043a \u0438 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c &#8212; \u0432\u044b\u0443\u0434\u0438\u0442\u044c \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u0435\u0441\u0442\u043e \u0441\u0431\u043e\u0440\u043d\u043e\u0439 (\u043e\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u0430\u0432 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u043e\u0432 \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435) \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u044b. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, <a href=\"https:\/\/www.scalatest.org\/plus\/selenium\" rel=\"noopener noreferrer nofollow\">Scala \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f Selenium<\/a> \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u0435\u0434\u043d\u0430\u044f \u0438 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0434\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f Java-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439: <\/p>\n<pre><code class=\"scala\">val resultRow: Query = xpath(\"\/\/table\/\/tr[td[@class='rechts']]\")  import scala.jdk.CollectionConverters._ import org.openqa.selenium._  val webDriver: WebDriver = ???  def results: mutable.Buffer[(Int, String)] =   webDriver.findElements(resultRow.by).asScala.map { el =&gt;     {       val place = el.findElement(By.xpath(\".\/\/td[@class='rechts']\")).getText       val name  = el.findElement(By.xpath(\".\/\/td[contains(@class, 'hauptlink')]\")).getText       (place.toInt, name)     }   }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 xpath-\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u043c<code> \/\/table\/\/tr[td[@class='rechts']]<\/code><\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c <code>java.util.List<\/code><em> <\/em>\u0432 <code>scala.collection.mutable.Buffer<\/code><\/p>\n<\/li>\n<li>\n<p> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0434\u0432\u0430 \u0435\u0433\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043f\u043e\u0434\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430: <code>.\/\/td[@class='rechts']<\/code><em> <\/em>&#8212; \u043c\u0435\u0441\u0442\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, <code> .\/\/td[contains(@class, 'hauptlink')] <\/code>&#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u044b<\/p>\n<\/li>\n<li>\n<p>\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0438\u0437 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430<strong> D<\/strong>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>Place<\/p>\n<\/td>\n<td>\n<p>Country<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>1<\/p>\n<\/td>\n<td>\n<p>Faroe Islands<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>2<\/p>\n<\/td>\n<td>\n<p>Malta         <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>3<\/p>\n<\/td>\n<td>\n<p>Latvia        <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>4<\/p>\n<\/td>\n<td>\n<p>Andorra       <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>1<\/p>\n<\/td>\n<td>\n<p>Gibraltar     <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>2<\/p>\n<\/td>\n<td>\n<p>Liechtenstein <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"78\" width=\"78\">\n<p>3<\/p>\n<\/td>\n<td>\n<p>San Marino    <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong><em>Previous results<\/em><\/strong><\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u0435\u0437\u043e\u043d\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 \u0444\u0438\u043b\u044c\u0442\u0440\u0435 <strong>Filter by season:<\/strong> \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong>18\/19<\/strong> \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 <strong>Show<\/strong>:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a:<\/p>\n<ul>\n<li>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0441\u0435\u0437\u043e\u043d\u043e\u0432 (\u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0441 css-\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u043c <code>a.chzn-single &gt; div &gt; b<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0442\u0435\u043c \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0441\u0435\u0437\u043e\u043d (\u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0443 \u0441 xpath-\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u043c <code>\/\/li[.='18\/19']<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0441\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0441\u0435\u0437\u043e\u043d\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0442\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 <strong>Show <\/strong>(css-\u043b\u043e\u043a\u0430\u0442\u043e\u0440 <code>input[value='Show']<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0418 \u043f\u043e\u0434\u043e\u0436\u0434\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u0435\u0437\u043e\u043d\u0430 (\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0436\u0434\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 url \u0442\u0435\u043a\u0443\u0449\u0435\u0439  \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0442\u0430\u043d\u0435\u0442 \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 <strong>saison_id=2018<\/strong> (url \u043d\u0430 \u043d\u0435\u043c\u0435\u0446\u043a\u043e\u043c))<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"scala\">val selectSeason: Query   = cssSelector(\"a.chzn-single &gt; div &gt; b\") val previousSeason: Query = xpath(\"\/\/li[.='18\/19']\") val show: Query           = cssSelector(\"input[value='Show']\")  def selectPreviousSeason: Boolean = {   selectSeason.waitVisible().click()   previousSeason.waitVisible().click()   new WebDriverWait(driver, Duration.ofSeconds(timeout)).until(invisibilityOfElementLocated(previousSeason.by))   clickOn(show)   new WebDriverWait(driver, Duration.ofSeconds(timeout)).until(wd =&gt; wd.getCurrentUrl.endsWith(\"saison_id=2018\")) }<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0435\u0434\u0438\u043d\u043e \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441\u0430\u0439\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f &#8216;A&#8217;, &#8216;B&#8217;, &#8216;C&#8217;, &#8216;D&#8217; \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c:<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443<\/p>\n<\/li>\n<li>\n<p>\u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0438\u0445<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0441\u0435\u0437\u043e\u043d<\/p>\n<\/li>\n<li>\n<p>\u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0438\u0445<\/p>\n<\/li>\n<\/ul>\n<p>P.S. \u0417\u0430\u0431\u0435\u0433\u0430\u044f \u0432\u043f\u0435\u0440\u0435\u0434, \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0437\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f <strong>Macedonia<\/strong> \u0441\u043c\u0435\u043d\u0438\u043b\u0430 \u0438\u043c\u044f \u043d\u0430 <strong>North Macedonia<\/strong> &#8212; \u044d\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0443\u0447\u0435\u0441\u0442\u044c.  <\/p>\n<pre><code class=\"scala\">case class Result(number: Int, group: Char, place: Int, country: String)  val mainPage = new MainPage go to mainPage  val results: ArrayBuffer[Result] = ArrayBuffer.empty[Result]  Seq('A', 'B', 'C', 'D').foreach(group =&gt; {   val leagueGroupPage = mainPage.goToGroup(group.toString)   val groupResult     = leagueGroupPage.results   groupResult.foreach { case (place, country) =&gt; results += Result(2, group, place, country) }   leagueGroupPage.selectPreviousSeason   leagueGroupPage.waitLoad(group.toString)   val previousSeasonResult = leagueGroupPage.results   previousSeasonResult.foreach {     case (place, country) =&gt;       results += Result(1, group, place, country.replace(\"Macedonia\", \"North Macedonia\"))   } })<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b.<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0443 \u043d\u0430\u0441 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <code>case class Result(number: Int, group: Char, place: Int, country: String)<\/code>, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u044d\u0442\u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u043a \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <code>case class ParsedResult(country: String, firstSeason: (Char, Int), secondSeason: (Char, Int), thirdSeason: Char, progress: (Int, Int))<\/code>, \u0433\u0434\u0435 \u0441\u0435\u0437\u043e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0432\u0438\u0434\u0435  <strong><em>tuple (\u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d, \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e)<\/em><\/strong>, \u0430 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 &#8212; \u0438\u0437 \u0434\u0432\u0443\u0445 \u0446\u0438\u0444\u0440, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u043f\u043e \u0438\u0442\u043e\u0433\u0430\u043c \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430: <strong>1<\/strong> (\u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435) | <strong>0<\/strong> | <strong>-1<\/strong> (\u043f\u043e\u043d\u0438\u0436\u0435\u043d\u0438\u0435)<\/p>\n<pre><code class=\"scala\">import scala.collection.mutable.ArrayBuffer  case class Result(number: Int = 0, group: Char = 'E', place: Int = 0, country: String = \"\") case class ParsedResult(country: String,                         firstSeason: (Char, Int),                         secondSeason: (Char, Int),                         thirdSeason: Char,                         progress: (Int, Int))  val results: ArrayBuffer[Result] = ???  val parsedResults = results         .groupBy(_.country)         .view         .mapValues(seq =&gt; {           val country: String           = seq.head.country           val firstRes                  = seq.find(_.number == 1).getOrElse(Result())           val firstSeason: (Char, Int)  = (firstRes.group, firstRes.place)           val secondRes                 = seq.find(_.number == 2).getOrElse(Result())           val secondSeason: (Char, Int) = (secondRes.group, secondRes.place)           val thirdSeason: Char =             if (secondSeason._2 == 1 &amp;&amp; secondSeason._1 != 'A') (secondSeason._1 - 1).toChar             else if (secondSeason._2 == 4 &amp;&amp; secondSeason._1 != 'D') (secondSeason._1 + 1).toChar             else secondSeason._1           val progress: (Int, Int) = (firstSeason._1 - secondSeason._1, secondSeason._1 - thirdSeason)           ParsedResult(country, firstSeason, secondSeason, thirdSeason, progress)         })         .values         .groupBy(_.progress)<\/code><\/pre>\n<p><strong><em>\u0421\u0430\u043c\u044b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043d\u044b\u0435?<\/em><\/strong><\/p>\n<p>\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u0431\u043e\u0440\u043d\u044b\u0445, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0445 \u043f\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0443.<\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p> <strong><em>\u0421\u0443\u043f\u0435\u0440\u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 (\u0441\u0431\u043e\u0440\u043d\u044b\u0435, \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0432\u0448\u0438\u0435 \u043f\u0440\u043e\u0440\u044b\u0432 \u0447\u0435\u0440\u0435\u0437 \u0434\u0432\u0430 \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0430) &#8212; 2<\/em><\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Country <\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>1st <\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>2nd<\/p>\n<\/td>\n<td>\n<p>3rd <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong><em>Hungary <\/em><\/strong><\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>C(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>B(1)<\/p>\n<\/td>\n<td>\n<p>A<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong><em>Armenia <\/em><\/strong><\/p>\n<\/td>\n<td data-colwidth=\"87\" width=\"87\">\n<p>D(2)<\/p>\n<\/td>\n<td data-colwidth=\"81\" width=\"81\">\n<p>C(1)<\/p>\n<\/td>\n<td>\n<p>B<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u043e\u0438\u0441\u0442\u0438\u043d\u0435 \u0444\u0435\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0412\u0435\u043d\u0433\u0440\u0438\u044f \u0438 \u0410\u0440\u043c\u0435\u043d\u0438\u044f: \u0438 \u0432\u043e\u0442 \u0443\u0436\u0435 <\/p>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-320711","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/320711","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=320711"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/320711\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=320711"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=320711"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=320711"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}