Best Python code snippet using playwright-python
AttachTest.py
Source: AttachTest.py
...29 the expected callback).30 """31 dut = self.android_devices[0]32 dut.droid.wifiAwareAttach(False)33 autils.wait_for_event(dut, aconsts.EVENT_CB_ON_ATTACHED)34 autils.fail_on_event(dut, aconsts.EVENT_CB_ON_IDENTITY_CHANGED)35 @test_tracker_info(uuid="82f2a8bc-a62b-49c2-ac8a-fe8460010ba2")36 def test_attach_with_identity(self):37 """Functional test case / Attach test cases / attach with identity callback38 Validates that attaching to the Wi-Fi Aware service works (receive39 the expected callbacks).40 """41 dut = self.android_devices[0]42 dut.droid.wifiAwareAttach(True)43 autils.wait_for_event(dut, aconsts.EVENT_CB_ON_ATTACHED)44 autils.wait_for_event(dut, aconsts.EVENT_CB_ON_IDENTITY_CHANGED)45 @test_tracker_info(uuid="d2714d14-f330-47d4-b8e9-ee4d5e5b7ea0")46 def test_attach_multiple_sessions(self):47 """Functional test case / Attach test cases / multiple attach sessions48 Validates that when creating multiple attach sessions each can be49 configured independently as to whether or not to receive an identity50 callback.51 """52 dut = self.android_devices[0]53 # Create 3 attach sessions: 2 without identity callback, 1 with54 id1 = dut.droid.wifiAwareAttach(False, None, True)55 time.sleep(10) # to make sure all calls and callbacks are done56 id2 = dut.droid.wifiAwareAttach(True, None, True)57 time.sleep(10) # to make sure all calls and callbacks are done58 id3 = dut.droid.wifiAwareAttach(False, None, True)59 dut.log.info('id1=%d, id2=%d, id3=%d', id1, id2, id3)60 # Attach session 1: wait for attach, should not get identity61 autils.wait_for_event(62 dut, autils.decorate_event(aconsts.EVENT_CB_ON_ATTACHED, id1))63 autils.fail_on_event(64 dut,65 autils.decorate_event(aconsts.EVENT_CB_ON_IDENTITY_CHANGED, id1))66 # Attach session 2: wait for attach and for identity callback67 autils.wait_for_event(68 dut, autils.decorate_event(aconsts.EVENT_CB_ON_ATTACHED, id2))69 autils.wait_for_event(70 dut,71 autils.decorate_event(aconsts.EVENT_CB_ON_IDENTITY_CHANGED, id2))72 # Attach session 3: wait for attach, should not get identity73 autils.wait_for_event(74 dut, autils.decorate_event(aconsts.EVENT_CB_ON_ATTACHED, id3))75 autils.fail_on_event(76 dut,77 autils.decorate_event(aconsts.EVENT_CB_ON_IDENTITY_CHANGED, id3))78 @test_tracker_info(uuid="b8ea4d02-ae23-42a7-a85e-def52932c858")79 def test_attach_with_no_wifi(self):80 """Function test case / Attach test cases / attempt to attach with wifi off81 Validates that if trying to attach with Wi-Fi disabled will receive the82 expected failure callback. As a side-effect also validates that the83 broadcast for Aware unavailable is received.84 """85 dut = self.android_devices[0]86 wutils.wifi_toggle_state(dut, False)87 autils.wait_for_event(dut, aconsts.BROADCAST_WIFI_AWARE_NOT_AVAILABLE)88 dut.droid.wifiAwareAttach()89 autils.wait_for_event(dut, aconsts.EVENT_CB_ON_ATTACH_FAILED)90 @test_tracker_info(uuid="7dcc4530-c936-4447-9d22-a7c5b315e2ce")91 def test_attach_with_doze(self):92 """Function test case / Attach test cases / attempt to attach with doze on93 Validates that if trying to attach with device in doze mode will receive the94 expected failure callback. As a side-effect also validates that the95 broadcast for Aware unavailable is received.96 """97 dut = self.android_devices[0]98 asserts.assert_true(utils.enable_doze(dut), "Can't enable doze")99 autils.wait_for_event(dut, aconsts.BROADCAST_WIFI_AWARE_NOT_AVAILABLE)100 dut.droid.wifiAwareAttach()101 autils.wait_for_event(dut, aconsts.EVENT_CB_ON_ATTACH_FAILED)102 asserts.assert_true(utils.disable_doze(dut), "Can't disable doze")103 autils.wait_for_event(dut, aconsts.BROADCAST_WIFI_AWARE_AVAILABLE)104 @test_tracker_info(uuid="2574fd01-8974-4dd0-aeb8-a7194461140e")105 def test_attach_with_location_off(self):106 """Function test case / Attach test cases / attempt to attach with location107 mode off.108 Validates that if trying to attach with device location mode off will109 receive the expected failure callback. As a side-effect also validates that110 the broadcast for Aware unavailable is received.111 """112 dut = self.android_devices[0]113 utils.set_location_service(dut, False)114 autils.wait_for_event(dut, aconsts.BROADCAST_WIFI_AWARE_NOT_AVAILABLE)115 dut.droid.wifiAwareAttach()116 autils.wait_for_event(dut, aconsts.EVENT_CB_ON_ATTACH_FAILED)117 utils.set_location_service(dut, True)118 autils.wait_for_event(dut, aconsts.BROADCAST_WIFI_AWARE_AVAILABLE)119 @test_tracker_info(uuid="7ffde8e7-a010-4b77-97f5-959f263b5249")120 def test_attach_apm_toggle_attach_again(self):121 """Validates that enabling Airplane mode while Aware is on resets it122 correctly, and allows it to be re-enabled when Airplane mode is then123 disabled."""124 dut = self.android_devices[0]125 # enable Aware (attach)126 dut.droid.wifiAwareAttach()127 autils.wait_for_event(dut, aconsts.EVENT_CB_ON_ATTACHED)128 # enable airplane mode129 utils.force_airplane_mode(dut, True)130 autils.wait_for_event(dut, aconsts.BROADCAST_WIFI_AWARE_NOT_AVAILABLE)131 # wait a few seconds and disable airplane mode132 time.sleep(10)133 utils.force_airplane_mode(dut, False)134 autils.wait_for_event(dut, aconsts.BROADCAST_WIFI_AWARE_AVAILABLE)135 # try enabling Aware again (attach)136 dut.droid.wifiAwareAttach()...
ble_characteristic.py
Source: ble_characteristic.py
...62 elif event == _IRQ_GATTS_INDICATE_DONE:63 print("_IRQ_GATTS_INDICATE_DONE", data[-1])64 if event not in waiting_events:65 waiting_events[event] = None66def wait_for_event(event, timeout_ms):67 t0 = time.ticks_ms()68 while time.ticks_diff(time.ticks_ms(), t0) < timeout_ms:69 if event in waiting_events:70 return waiting_events.pop(event)71 machine.idle()72 raise ValueError("Timeout waiting for {}".format(event))73# Acting in peripheral role.74def instance0():75 multitest.globals(BDADDR=ble.config("mac"))76 ((char_handle,),) = ble.gatts_register_services(SERVICES)77 print("gap_advertise")78 ble.gap_advertise(20_000, b"\x02\x01\x06\x04\xffMPY")79 multitest.next()80 try:81 # Write initial characteristic value.82 ble.gatts_write(char_handle, "periph0")83 # Wait for central to connect to us.84 conn_handle = wait_for_event(_IRQ_CENTRAL_CONNECT, TIMEOUT_MS)85 # A86 # Wait for a write to the characteristic from the central,87 # then reply with a notification.88 wait_for_event(_IRQ_GATTS_WRITE, TIMEOUT_MS)89 print("gatts_write")90 ble.gatts_write(char_handle, "periph1")91 print("gatts_notify")92 ble.gatts_notify(conn_handle, char_handle)93 # B94 # Wait for a write to the characteristic from the central,95 # then reply with value-included notification.96 wait_for_event(_IRQ_GATTS_WRITE, TIMEOUT_MS)97 print("gatts_notify")98 ble.gatts_notify(conn_handle, char_handle, "periph2")99 # C100 # Wait for a write to the characteristic from the central,101 # then reply with an indication.102 wait_for_event(_IRQ_GATTS_WRITE, TIMEOUT_MS)103 print("gatts_write")104 ble.gatts_write(char_handle, "periph3")105 print("gatts_indicate")106 ble.gatts_indicate(conn_handle, char_handle)107 wait_for_event(_IRQ_GATTS_INDICATE_DONE, TIMEOUT_MS)108 # Wait for the central to disconnect.109 wait_for_event(_IRQ_CENTRAL_DISCONNECT, TIMEOUT_MS)110 finally:111 ble.active(0)112# Acting in central role.113def instance1():114 multitest.next()115 try:116 # Connect to peripheral and then disconnect.117 print("gap_connect")118 ble.gap_connect(*BDADDR)119 conn_handle = wait_for_event(_IRQ_PERIPHERAL_CONNECT, TIMEOUT_MS)120 # Discover characteristics.121 ble.gattc_discover_characteristics(conn_handle, 1, 65535)122 value_handle = wait_for_event(_IRQ_GATTC_CHARACTERISTIC_RESULT, TIMEOUT_MS)123 wait_for_event(_IRQ_GATTC_CHARACTERISTIC_DONE, TIMEOUT_MS)124 # Issue read of characteristic, should get initial value.125 print("gattc_read")126 ble.gattc_read(conn_handle, value_handle)127 wait_for_event(_IRQ_GATTC_READ_RESULT, TIMEOUT_MS)128 # Write to the characteristic, which will trigger a notification.129 print("gattc_write")130 ble.gattc_write(conn_handle, value_handle, "central0", 1)131 wait_for_event(_IRQ_GATTC_WRITE_DONE, TIMEOUT_MS)132 # A133 wait_for_event(_IRQ_GATTC_NOTIFY, TIMEOUT_MS)134 print("gattc_read") # Read the new value set immediately before notification.135 ble.gattc_read(conn_handle, value_handle)136 wait_for_event(_IRQ_GATTC_READ_RESULT, TIMEOUT_MS)137 # Write to the characteristic, which will trigger a value-included notification.138 print("gattc_write")139 ble.gattc_write(conn_handle, value_handle, "central1", 1)140 wait_for_event(_IRQ_GATTC_WRITE_DONE, TIMEOUT_MS)141 # B142 wait_for_event(_IRQ_GATTC_NOTIFY, TIMEOUT_MS)143 print("gattc_read") # Read value should be unchanged.144 ble.gattc_read(conn_handle, value_handle)145 wait_for_event(_IRQ_GATTC_READ_RESULT, TIMEOUT_MS)146 # Write to the characteristic, which will trigger an indication.147 print("gattc_write")148 ble.gattc_write(conn_handle, value_handle, "central2", 1)149 wait_for_event(_IRQ_GATTC_WRITE_DONE, TIMEOUT_MS)150 # C151 wait_for_event(_IRQ_GATTC_INDICATE, TIMEOUT_MS)152 print("gattc_read") # Read the new value set immediately before indication.153 ble.gattc_read(conn_handle, value_handle)154 wait_for_event(_IRQ_GATTC_READ_RESULT, TIMEOUT_MS)155 # Disconnect from peripheral.156 print("gap_disconnect:", ble.gap_disconnect(conn_handle))157 wait_for_event(_IRQ_PERIPHERAL_DISCONNECT, TIMEOUT_MS)158 finally:159 ble.active(0)160ble = bluetooth.BLE()161ble.active(1)...
stress_log_filesystem.py
Source: stress_log_filesystem.py
...84 elif event == _IRQ_GATTS_READ_REQUEST:85 print("_IRQ_GATTS_READ_REQUEST")86 if event not in waiting_events:87 waiting_events[event] = None88def wait_for_event(event, timeout_ms):89 t0 = time.ticks_ms()90 while time.ticks_diff(time.ticks_ms(), t0) < timeout_ms:91 periodic_log_write()92 if event in waiting_events:93 return waiting_events.pop(event)94 machine.idle()95 raise ValueError("Timeout waiting for {}".format(event))96# Acting in peripheral role.97def instance0():98 global log_file99 log_file = open(LOG_PATH_INSTANCE0, "w")100 write_log("start")101 ble.active(1)102 ble.irq(irq)103 multitest.globals(BDADDR=ble.config("mac"))104 ((char_handle,),) = ble.gatts_register_services(SERVICES)105 multitest.next()106 try:107 for repeat in range(2):108 print("gap_advertise")109 ble.gap_advertise(50_000, b"\x02\x01\x06\x04\xffMPY")110 # Wait for central to connect, do a sequence of read/write, then disconnect.111 wait_for_event(_IRQ_CENTRAL_CONNECT, TIMEOUT_MS)112 for op in range(4):113 wait_for_event(_IRQ_GATTS_READ_REQUEST, TIMEOUT_MS)114 wait_for_event(_IRQ_GATTS_WRITE, TIMEOUT_MS)115 wait_for_event(_IRQ_CENTRAL_DISCONNECT, 2 * TIMEOUT_MS)116 finally:117 ble.active(0)118 log_file.close()119 os.unlink(LOG_PATH_INSTANCE0)120# Acting in central role.121def instance1():122 global log_file123 log_file = open(LOG_PATH_INSTANCE1, "w")124 write_log("start")125 ble.active(1)126 ble.irq(irq)127 multitest.next()128 try:129 for repeat in range(2):130 # Connect to peripheral and then disconnect.131 print("gap_connect")132 ble.gap_connect(BDADDR[0], BDADDR[1], 5000)133 conn_handle = wait_for_event(_IRQ_PERIPHERAL_CONNECT, TIMEOUT_MS)134 # Discover services.135 print("gattc_discover_services")136 ble.gattc_discover_services(conn_handle)137 start_handle, end_handle = wait_for_event(_IRQ_GATTC_SERVICE_RESULT, TIMEOUT_MS)138 wait_for_event(_IRQ_GATTC_SERVICE_DONE, TIMEOUT_MS)139 # Discover characteristics.140 print("gattc_discover_characteristics")141 ble.gattc_discover_characteristics(conn_handle, start_handle, end_handle)142 value_handle = wait_for_event(_IRQ_GATTC_CHARACTERISTIC_RESULT, TIMEOUT_MS)143 wait_for_event(_IRQ_GATTC_CHARACTERISTIC_DONE, TIMEOUT_MS)144 for op in range(4):145 print("gattc_read")146 ble.gattc_read(conn_handle, value_handle)147 wait_for_event(_IRQ_GATTC_READ_RESULT, TIMEOUT_MS)148 wait_for_event(_IRQ_GATTC_READ_DONE, TIMEOUT_MS)149 print("gattc_write")150 ble.gattc_write(conn_handle, value_handle, "{}".format(op), 1)151 wait_for_event(_IRQ_GATTC_WRITE_DONE, TIMEOUT_MS)152 # Disconnect.153 print("gap_disconnect:", ble.gap_disconnect(conn_handle))154 wait_for_event(_IRQ_PERIPHERAL_DISCONNECT, 2 * TIMEOUT_MS)155 finally:156 ble.active(0)157 log_file.close()158 os.unlink(LOG_PATH_INSTANCE1)...
Playwright error connection refused in docker
playwright-python advanced setup
How to select an input according to a parent sibling label
Error when installing Microsoft Playwright
Trouble waiting for changes to complete that are triggered by Python Playwright `select_option`
Capturing and Storing Request Data Using Playwright for Python
Can Playwright be used to launch a browser instance
Trouble in Clicking on Log in Google Button of Pop Up Menu Playwright Python
Scrapy Playwright get date by clicking button
React locator example
I solved my problem. In fact my docker container (frontend) is called "app" which is also domain name of fronend application. My application is running locally on http. Chromium and geko drivers force httpS connection for some domain names one of which is "app". So i have to change name for my docker container wich contains frontend application.
Check out the latest blogs from LambdaTest on this topic:
The sky’s the limit (and even beyond that) when you want to run test automation. Technology has developed so much that you can reduce time and stay more productive than you used to 10 years ago. You needn’t put up with the limitations brought to you by Selenium if that’s your go-to automation testing tool. Instead, you can pick from various test automation frameworks and tools to write effective test cases and run them successfully.
When it comes to web automation testing, there are a number of frameworks like Selenium, Cypress, PlayWright, Puppeteer, etc., that make it to the ‘preferred list’ of frameworks. The choice of test automation framework depends on a range of parameters like type, complexity, scale, along with the framework expertise available within the team. However, it’s no surprise that Selenium is still the most preferred framework among developers and QAs.
Playwright is a framework that I’ve always heard great things about but never had a chance to pick up until earlier this year. And since then, it’s become one of my favorite test automation frameworks to use when building a new automation project. It’s easy to set up, feature-packed, and one of the fastest, most reliable frameworks I’ve worked with.
The speed at which tests are executed and the “dearth of smartness” in testing are the two major problems developers and testers encounter.
With the rapidly evolving technology due to its ever-increasing demand in today’s world, Digital Security has become a major concern for the Software Industry. There are various ways through which Digital Security can be achieved, Captcha being one of them.Captcha is easy for humans to solve but hard for “bots” and other malicious software to figure out. However, Captcha has always been tricky for the testers to automate, as many of them don’t know how to handle captcha in Selenium or using any other test automation framework.
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!!