{"id":3101,"date":"2025-01-14T15:45:08","date_gmt":"2025-01-14T15:45:08","guid":{"rendered":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/2025\/01\/14\/utilize-playwright-java-to-interact-with-dropdown-menus\/"},"modified":"2025-01-14T15:45:08","modified_gmt":"2025-01-14T15:45:08","slug":"utilize-playwright-java-to-interact-with-dropdown-menus","status":"publish","type":"post","link":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/2025\/01\/14\/utilize-playwright-java-to-interact-with-dropdown-menus\/","title":{"rendered":"Utilize Playwright-Java to interact with dropdown menus"},"content":{"rendered":"<p><html><body><\/p>\n<section class=\"tcb-post-content tcb-shortcode thrv_wrapper\" data-css=\"tve-u-16ec5d248bb\">\n<div class=\"tve_flt tcb-style-wrap\" id=\"tve_flt\">\n<div class=\"tve_shortcode_editor tar-main-content\" data-post-id=\"3101\" id=\"tve_editor\">\n<div class=\"thrv_wrapper thrv_text_element\">\n<p><em>In this blog we will leverage the power of Playwright-Java to seamlessly interact with dropdown menus.<\/em><\/p>\n<div class=\"code-block code-block-2\" style=\"margin: 8px auto; text-align: center; display: block; clear: both;\">\n<p><!-- horizontal responsive 2 --><br \/>\n<ins class=\"adsbygoogle\" data-ad-client=\"ca-pub-3231318496783163\" data-ad-format=\"auto\" data-ad-slot=\"2788468763\" data-full-width-responsive=\"true\" style=\"display:block\"><\/ins>\n<\/div>\n<p><strong>Topics that we will cover:<\/strong><\/p>\n<ul>\n<li>select by value (example 1, method 1)<\/li>\n<li>select by value (method 2)<\/li>\n<li>select by value (example 2)<\/li>\n<li>select by text<\/li>\n<li>select by index<\/li>\n<li>Soure code<\/li>\n<\/ul>\n<p><strong>select by value (example 1, method 1)<\/strong><\/p>\n<p>Go to <a class=\"\" href=\"https:\/\/demo.automationtesting.in\/Register.html\" rel=\"noopener\" style=\"outline: none;\" target=\"_blank\">https:\/\/demo.automationtesting.in\/Register.html<\/a><\/p>\n<p>There is a \u2018Skills\u2019 dropdown field<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-1946581462a\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3105\" data-css=\"tve-u-194658155fc\" data-height=\"398\" data-id=\"3105\" data-init-height=\"748\" data-init-width=\"958\" data-width=\"510\" decoding=\"async\" height=\"398\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.17.39\u202fPM.png\" style=\"aspect-ratio: auto 958 \/ 748;\" title=\"Screenshot 2025-01-14 at 9.17.39\u202fPM\" width=\"510\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>Let us try to select any value from this simple dropdown field.\u00a0<\/p>\n<p>But before we do that, let us first inspect the \u2018Skills\u2019 dropdown field.\u00a0<\/p>\n<p>Notice below that it has unique \u2018id\u2019 and various dropdown values can be seen as part of \u2018value\u2019 attribute, example, dropdown values such as: <em>Adobe InDesign, Java, HTML <\/em>etc\u00a0<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-1946581dc20\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3106\" data-css=\"tve-u-1946581f31f\" data-height=\"343\" data-id=\"3106\" data-init-height=\"598\" data-init-width=\"1172\" data-width=\"672\" decoding=\"async\" height=\"343\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.18.54\u202fPM.png\" style=\"aspect-ratio: auto 1172 \/ 598;\" title=\"Screenshot 2025-01-14 at 9.18.54\u202fPM\" width=\"672\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0There is a \u2018<em>selectOption<\/em><em>\u2019<\/em> method hat accepts the css selector and the desired value (example HTML value)\u00a0<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-19465825de2\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3107\" data-css=\"tve-u-19465826fe8\" data-height=\"291\" data-id=\"3107\" data-init-height=\"532\" data-init-width=\"1172\" data-width=\"642\" decoding=\"async\" height=\"291\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.19.33\u202fPM.png\" style=\"aspect-ratio: auto 1172 \/ 532;\" title=\"Screenshot 2025-01-14 at 9.19.33\u202fPM\" width=\"642\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0So we can pass these 2 arguments<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-19465831a84\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3108\" data-css=\"tve-u-19465832b6d\" data-height=\"392\" data-id=\"3108\" data-init-height=\"836\" data-init-width=\"1190\" data-width=\"558\" decoding=\"async\" height=\"392\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.20.09\u202fPM.png\" style=\"aspect-ratio: auto 1190 \/ 836;\" title=\"Screenshot 2025-01-14 at 9.20.09\u202fPM\" width=\"558\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p><strong>select by value (method 2)<\/strong><\/p>\n<p>In the above syntax <em>pg.selectOption(selector, value)<\/em>, we were passing 2 arguments in the selectOption() method: selector and value.\u00a0<\/p>\n<p>We can also break the same syntax such that &#8216;locator()&#8217; plays the role of &#8216;selector&#8217; and selectOption() accepts only value: <em>pg.locator().selectOption();<\/em><\/p>\n<\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>Let us now inspect \u2018Month\u2019 dropdown<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-1946583e1c5\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3109\" data-css=\"tve-u-1946583f362\" data-height=\"457\" data-id=\"3109\" data-init-height=\"1124\" data-init-width=\"1190\" data-width=\"484\" decoding=\"async\" height=\"457\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.21.03\u202fPM.png\" style=\"aspect-ratio: auto 1190 \/ 1124;\" title=\"Screenshot 2025-01-14 at 9.21.03\u202fPM\" width=\"484\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0Execute, notice that \u2018October\u2019 gets selected<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-1946584ab58\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3110\" data-css=\"tve-u-1946584bc49\" data-height=\"308\" data-id=\"3110\" data-init-height=\"632\" data-init-width=\"1190\" data-width=\"579\" decoding=\"async\" height=\"308\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.22.03\u202fPM.png\" style=\"aspect-ratio: auto 1190 \/ 632;\" title=\"Screenshot 2025-01-14 at 9.22.03\u202fPM\" width=\"579\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p><strong>select by value (example 2)<\/strong><\/p>\n<p>Let us see another website <a class=\"\" href=\"https:\/\/www.wikipedia.org\/\" rel=\"noopener\" style=\"outline: none;\" target=\"_blank\">https:\/\/www.wikipedia.org\/<\/a>\u00a0<\/p>\n<p>You can see various dropdown values<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-194658545d2\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3111\" data-css=\"tve-u-19465855746\" data-height=\"348\" data-id=\"3111\" data-init-height=\"748\" data-init-width=\"1190\" data-width=\"553\" decoding=\"async\" height=\"348\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.22.37\u202fPM.png\" style=\"aspect-ratio: auto 1190 \/ 748;\" title=\"Screenshot 2025-01-14 at 9.22.37\u202fPM\" width=\"553\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0Let us inspect the dropdown field<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-1946585c545\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3112\" data-css=\"tve-u-1946585d9b8\" data-height=\"283\" data-id=\"3112\" data-init-height=\"652\" data-init-width=\"1190\" data-width=\"516\" decoding=\"async\" height=\"283\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.23.16\u202fPM.png\" style=\"aspect-ratio: auto 1190 \/ 652;\" title=\"Screenshot 2025-01-14 at 9.23.16\u202fPM\" width=\"516\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0Notice above that \u2018select\u2019 tag identifies this dropdown. Let us now use this tagname as the selector in selectOption() method. Also let us write any desired value\u00a0<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-19465863af1\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3113\" data-css=\"tve-u-19465864c0c\" data-height=\"177\" data-id=\"3113\" data-init-height=\"332\" data-init-width=\"1190\" data-width=\"634\" decoding=\"async\" height=\"177\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.23.46\u202fPM.png\" style=\"aspect-ratio: auto 1190 \/ 332;\" title=\"Screenshot 2025-01-14 at 9.23.46\u202fPM\" width=\"634\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0Execute. Notice below that \u2018Af\u2019 gets selected from dropdown\u00a0<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-194658754e5\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3114\" data-css=\"tve-u-194658768c8\" data-height=\"461\" data-id=\"3114\" data-init-height=\"870\" data-init-width=\"1190\" data-width=\"631\" decoding=\"async\" height=\"461\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.24.53\u202fPM.png\" style=\"aspect-ratio: auto 1190 \/ 870;\" title=\"Screenshot 2025-01-14 at 9.24.53\u202fPM\" width=\"631\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0<strong>select by text<\/strong><\/p>\n<p>The circle below highlights the respective text for various dropdown values \u00a0<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-1946587d550\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3115\" data-css=\"tve-u-1946587e577\" data-height=\"281\" data-id=\"3115\" data-init-height=\"562\" data-init-width=\"1190\" data-width=\"595\" decoding=\"async\" height=\"281\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.25.30\u202fPM.png\" style=\"aspect-ratio: auto 1190 \/ 562;\" title=\"Screenshot 2025-01-14 at 9.25.30\u202fPM\" width=\"595\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0If we want to select by text, we can use <em>setLabel()<\/em> method<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-19465887a55\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3116\" data-css=\"tve-u-194658889f7\" data-height=\"561\" data-id=\"3116\" data-init-height=\"1368\" data-init-width=\"1190\" data-width=\"488\" decoding=\"async\" height=\"561\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.26.09\u202fPM.png\" style=\"aspect-ratio: auto 1190 \/ 1368;\" title=\"Screenshot 2025-01-14 at 9.26.09\u202fPM\" width=\"488\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0<strong>select by index<\/strong><\/p>\n<p>If we want to select 4<sup>th<\/sup> value from top (index 3), we can do that as well<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-19465890fe4\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3117\" data-css=\"tve-u-1946589211e\" data-height=\"665\" data-id=\"3117\" data-init-height=\"890\" data-init-width=\"440\" data-width=\"329\" decoding=\"async\" height=\"665\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.26.50\u202fPM.png\" style=\"aspect-ratio: auto 440 \/ 890;\" title=\"Screenshot 2025-01-14 at 9.26.50\u202fPM\" width=\"329\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0If we want to select by index, we can use <em>setIndex()<\/em> method<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-1946589c26a\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3118\" data-css=\"tve-u-1946589d3ad\" data-height=\"203\" data-id=\"3118\" data-init-height=\"436\" data-init-width=\"1172\" data-width=\"547\" decoding=\"async\" height=\"203\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.27.37\u202fPM.png\" style=\"aspect-ratio: auto 1172 \/ 436;\" title=\"Screenshot 2025-01-14 at 9.27.37\u202fPM\" width=\"547\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>\u00a0Execute the code, notice that AST gets selected<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-194658a5862\" style=\"\"><span class=\"tve_image_frame\"><img alt=\"\" class=\"tve_image wp-image-3119\" data-css=\"tve-u-194658a696f\" data-height=\"60\" data-id=\"3119\" data-init-height=\"114\" data-init-width=\"924\" data-width=\"489\" decoding=\"async\" height=\"60\" loading=\"lazy\" src=\"\/blog\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-14-at-9.28.14\u202fPM.png\" style=\"aspect-ratio: auto 924 \/ 114;\" title=\"Screenshot 2025-01-14 at 9.28.14\u202fPM\" width=\"489\"\/><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>So this is how we can select dropdown values using playwright-java.\u00a0<\/p>\n<p><strong>Source code<\/strong><\/p>\n<p><strong>package<\/strong> com.rsa.playwrightjava;<\/p>\n<p><\/p>\n<p><strong>import<\/strong> org.junit.jupiter.api.Test;<\/p>\n<p><strong>import<\/strong> com.microsoft.playwright.Browser;<\/p>\n<p><strong>import<\/strong> com.microsoft.playwright.BrowserType;<\/p>\n<p><strong>import<\/strong> com.microsoft.playwright.BrowserType.LaunchOptions;<\/p>\n<p><strong>import<\/strong> com.microsoft.playwright.Page;<\/p>\n<p><strong>import<\/strong> com.microsoft.playwright.Playwright;<\/p>\n<p><strong>import<\/strong> com.microsoft.playwright.options.SelectOption;<\/p>\n<p><\/p>\n<p><strong>public<\/strong><br \/>\n<strong>class<\/strong> Blog7_dropdowns_PWJava {<\/p>\n<p>@Test<\/p>\n<p><strong>public<\/strong><br \/>\n<strong>void<\/strong> PlaywrightJTest() {<\/p>\n<p>Playwright pt = Playwright.<em>create<\/em>();<\/p>\n<p>LaunchOptions lo = <strong>new<\/strong> LaunchOptions();<\/p>\n<p>lo.setChannel(&#8220;msedge&#8221;);<\/p>\n<p>lo.setHeadless(<strong>false<\/strong>);<\/p>\n<p>BrowserType btype = pt.chromium();<\/p>\n<p>Browser b = btype.launch((<strong>new<\/strong> BrowserType.LaunchOptions().setHeadless(<strong>false<\/strong>)));<\/p>\n<p>Page pg = b.newPage();<\/p>\n<p>\/*<\/p>\n<p>\/\/Example 1<\/p>\n<p>pg.navigate(&#8220;https:\/\/demo.automationtesting.in\/Register.html&#8221;);<\/p>\n<p>\/\/select by value<\/p>\n<p>pg.selectOption(&#8220;#Skills&#8221;, &#8220;HTML&#8221;);<\/p>\n<p>pg.locator(&#8220;[placeholder=&#8217;Month&#8217;]&#8221;).selectOption(&#8220;October&#8221;);<\/p>\n<p>*\/<\/p>\n<p>\/\/Example 2<\/p>\n<p>pg.navigate(&#8220;https:\/\/www.wikipedia.org\/&#8221;);<\/p>\n<p>\/\/select by value<\/p>\n<p>\/\/pg.selectOption(&#8220;select&#8221;, &#8220;af&#8221;);<\/p>\n<p>\/\/select by text<\/p>\n<p>\/\/pg.selectOption(&#8220;select&#8221;, new SelectOption().setLabel(&#8220;Polski&#8221;));<\/p>\n<p>\/\/select by index<\/p>\n<p>pg.selectOption(&#8220;select&#8221;, <strong>new<\/strong> SelectOption().setIndex(3));<\/p>\n<p>pg.pause();<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p><\/p>\n<p>Thanks.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"tcb_flag\" style=\"display: none\"><\/div>\n<\/section>\n<p><\/body><\/html><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog we will leverage the power of Playwright-Java to seamlessly interact with dropdown menus. Topics that we will cover: select by value (example 1, method 1) select by value (method 2) select by value (example 2) select by text select by index Soure code select by value (example 1, method 1) Go to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,9],"tags":[],"class_list":["post-3101","post","type-post","status-publish","format-standard","hentry","category-java","category-playwright","post-wrapper","thrv_wrapper"],"_links":{"self":[{"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/3101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=3101"}],"version-history":[{"count":0,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/3101\/revisions"}],"wp:attachment":[{"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=3101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=3101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=3101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}