Best Python code snippet using playwright-python
rei.py
Source:rei.py
...120 # get the main img file location so you can "compare visually" like a real boi121 filters = page.locator("div.all-filters")122 # filter for brand like a humanman (but really it's to reduce what's in results later)123 brand_section = filters.locator("section.Filter:has-text(\"Brand\")")124 brand_section.scroll_into_view_if_needed()125 if page.query_selector("div.all-filters >> section.Filter:has-text(\"Brand\") >> button"): # if more options126 expand = brand_section.locator("button")127 expand.click()128 brand_filter = brand_section.locator(f"label:has-text(\"{item_brand}\")")129 brand_filter.scroll_into_view_if_needed()130 brand_filter.check()131 # filter for size132 size_section = filters.locator("section.Filter:has-text(\"Size\")")133 size_section.scroll_into_view_if_needed()134 if page.query_selector("div.all-filters >> section.Filter:has-text(\"Size\") >> button"): # if more options135 expand = size_section.locator("button")136 expand.click()137 size_filter = size_section.locator(f"label:has-text(\"{chosen_item['size']}\")")138 size_filter.first.check()139 page.wait_for_selector("article.Results >> div.List >> ol") # wait for the overlay to load140 items = page.query_selector_all("article.Results >> div.List >> ol >> li.TileItem")141 for i in items:142 # i.scroll_into_view_if_needed() # occasionally errors with "element is not in DOM" so... yeah143 if chosen_item_image in i.inner_html():144 i.click()145 # select color, condition, size146 page.wait_for_selector("div.Item >> div.wrap >> article >> section")147 selections = page.locator("div.Item >> div.wrap >> article >> section")148 # colors = selections.locator("div.colors.is-left-scrolled.is-right-scrolled")149 # check for if there are multiple colors to choose from150 # multi_color = page.query_selector_all("div.colors.is-left-scrolled.is-right-scrolled >> article >> label")151 # if len(multi_color) > 1:152 # all_colors = colors.locator("article")153 # CHOOSING A SIZE ALONE SHOULD GET ME CLOSE TO FEWER SELECTIONS NEEDED, PLUS I ALREADY FILTERED FOR IT154 sizes = page.query_selector_all("div.sizes >> article >> label")155 for size in sizes:156 print(size.get_attribute("aria-label"))...
main.py
Source:main.py
...68 page.locator('span.ckbox-checkmark').click()69 page.locator("text=ä¸ä¸é ").click()70 page.wait_for_load_state()71 page.click(lang_pref)72 page.locator("input#step_2_surname").scroll_into_view_if_needed(timeout=1000)73 page.fill('#step_2_surname', surname)74 page.fill('#step_2_givenname', given_name)75 page.fill('#step_2_tel_for_sms_notif', sms_phone)76 page.fill('#step_2_tel_for_sms_notif_confirm', sms_phone)77 # District78 page.locator("select[name=\"step_2_district\"]").scroll_into_view_if_needed(timeout=1000)79 page.locator("select[name=\"step_2_district\"]").select_option(desired_district) # select District80 # Centre81 page.locator("select[name=\"step_2_center\"]").select_option(desired_centre) # select Centre82 while chok(page, today_a, desired_district, desired_centre):83 page.evaluate("console.log('" + today_a.strftime('%Y-%m-%d %H:%M:%S') + "')")84 capScreen(page)85 break86 page.locator("button#btnScreenShot").scroll_into_view_if_needed(timeout=1000)87 page.locator("button#btnScreenShot").click()88 now = datetime.now().strftime('%Y_%m_%d_%H_%M_%S')89 context.tracing.stop(path="trace_" + now + ".zip")90 page.pause()91with sync_playwright() as playwright:92 run(playwright).setTimeout(9999999)93#value of type NAT cards94# <select id="step_1_ATGC_NATCARDTYPE" class="form-control" name="step_1_documentId_Type" style="min-width: 300px" required="">95# <option value="HK_IDCARD" selected="selected">é¦æ¸¯èº«ä»½è / åºçèææ¸</option>96# <option value="CH">å
§å°å±
æ°æ¸¯æ¾³éè¡è</option>97# <option value="CH_IDCARD">ä¸åå±
æ°èº«ä»½è</option>98# <option value="CH_PASS">ä¸åè·ç
§</option>99# <option value="HC">港澳å±
æ°ä¾å¾å
§å°éè¡èï¼å³åéèï¼</option>100# <option value="HCTP">å°ç£å±
æ°ä¾å¾å¤§é¸éè¡è</option>...
web_elements.py
Source:web_elements.py
...128 return self.element.evaluate(expression='''el => { el.scrollIntoView({behavior: \"%s\", block: \"%s\", inline: \"%s\"}); }''' % (behavior, block, inline))129 else:130 self.page.eval_on_selector(self.selector, expression='''(el) => { el.scrollIntoView({behavior: \"%s\", block: \"%s\", inline: \"%s\"}); }''' % (behavior, block, inline))131 return self132 def scroll_into_view_if_needed(self):133 if self.selector is None:134 self.element.scroll_into_view_if_needed()135 else:136 self.page.query_selector(self.selector).scroll_into_view_if_needed()137 return self138class WebElements:139 def __init__(self, page: Page, selector: str):140 self.page = page141 self.selector = selector142 self.elements: List[ElementHandle] = self.page.query_selector_all(selector)143 def size(self):144 return len(self.elements)145 def get(self, index):146 return self.elements[index]147 def get_texts(self):148 texts = self.page.eval_on_selector_all(self.selector, '''149 (elems, min) => {150 return elems.map(function(el) {...
elements.py
Source:elements.py
...132 expression='''(el) => { el.scrollIntoView(\133 {behavior: \"%s\", block: \"%s\", inline: \"%s\"}); }''' % (134 behavior, block, inline))135 return self136 def scroll_into_view_if_needed(self):137 if self.selector is None:138 self.element.scroll_into_view_if_needed()139 else:140 self.page.query_selector(self.selector).scroll_into_view_if_needed()141 return self142class WebElements:143 def __init__(self, page: Page, selector: str):144 self.page = page145 self.selector = selector146 self.elements: List[ElementHandle] = self.page.query_selector_all(selector)147 def size(self):148 return len(self.elements)149 def get(self, index):150 return self.elements[index]151 def get_texts(self):152 texts = self.page.eval_on_selector_all(self.selector, '''153 (elems, min) => {154 return elems.map(function(el) {...
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!