Best Python code snippet using playwright-python
helper.py
Source: helper.py
...50 def decorator(f):51 self.add_handler(event, f, *args, **kwargs)52 return f53 return decorator54 def _on_event(self, event, *event_args, **event_kwargs):55 if event in self._event_handlers:56 for handler, args, kwargs in self._event_handlers[event]:57 handler(self, *args, *event_args, **kwargs, **event_kwargs)58 59 def set_train_routine(self, routine):60 self._train_routine = routine61 def set_test_routine(self, routine):62 self._test_routine = routine63 @property64 def train_routine(self):65 def decorator(f):66 self.set_train_routine(f)67 return f68 return decorator69 70 @property71 def test_routine(self):72 def decorator(f):73 self.set_test_routine(f)74 return f75 return decorator76 def train(self, dataloader, epochs=200):77 ''' helps the training process 78 Args: 79 dataloader (DataLoader): dataloader to use 80 epochs (int): number of epochs81 ''' 82 try:83 logger.info('[*] training started with max epochs of {}'.format(epochs))84 start = time.time()85 self._on_event(Events.STARTED)86 for epoch in range(epochs):87 self._on_event(Events.EPOCH_STARTED)88 train_loss = 089 for i, (data, label) in enumerate(dataloader): 90 self._on_event(Events.ITR_STARTED)91 train_loss += self._train_routine(self, data, label)92 self._on_event(Events.ITR_COMPLETED)93 progressbar(i, len(dataloader), 'epoch: {}/{} train loss:{:.4f} '.format(epoch+1, epochs, train_loss/(i+1)), '(time: {})'.format(str(timedelta(seconds=time.time()-start))))94 logger.debug('epoch: {}/{} train loss:{:.4f} '.format(epoch+1, epochs, train_loss/len(dataloader)))95 self._on_event(Events.EPOCH_COMPLETED, epoch=epoch)96 self._on_event(Events.COMPLETED)97 except BaseException as e:98 logger.error('[*] training terminated due to exception: {}'.format(str(e)))99 self._on_event(Events.EXCEPTION_RAISED, e) 100 def test(self, dataloader, weights=None):101 ''' helps the testing process102 Args: 103 dataloader (DataLoader): dataloader to use 104 weights (str): path to pretrained weights105 ''' 106 self.model.eval()107 if weights is not None:108 if os.path.exists(filename):109 self.model.load(filename)110 else:111 logger.error('[*] file not found: {}'.format(weights))112 raise FileNotFoundError113 try:114 logger.info('[*] testing started.')115 start = time.time()116 self._on_event(Events.STARTED)117 for i, (data, label) in enumerate(dataloader): 118 self._on_event(Events.ITR_STARTED)119 self._test_routine(self, data, label)120 self._on_event(Events.ITR_COMPLETED)121 progressbar(i, len(dataloader), )122 self._on_event(Events.COMPLETED)123 except BaseException as e:124 logger.error('[*] training terminated due to exception: {}'.format(str(e)))125 self._on_event(Events.EXCEPTION_RAISED, e) 126 def get_accuracy(self, data, label):127 output = self.model(data) 128 out = np.argmax(output.data, axis=1) 129 ans = np.argmax(label.data, axis=1)130 return sum(out == ans)/label.shape[0]131 def plot(self, losses, filename=None):132 plt.plot([i for i in range(len(losses))], losses)133 plt.title('training losses of {} in {}'.format(self.model_name, self.data_name))134 plt.ylabel('training loss')135 plt.xlabel('epochs')136 if filename is not None:137 plt.savefig(filename)138 else: 139 plt.show()
led.py
Source: led.py
...18 def on_loaded(self):19 self._led_file = "/sys/class/leds/led%d/brightness" % self.options['led']20 self._delay = int(self.options['delay'])21 logging.info("[led] plugin loaded for %s" % self._led_file)22 self._on_event('loaded')23 _thread.start_new_thread(self._worker, ())24 def _on_event(self, event):25 if not self._is_busy:26 self._event_name = event27 self._event.set()28 logging.debug("[led] event '%s' set", event)29 else:30 logging.debug("[led] skipping event '%s' because the worker is busy", event)31 def _led(self, on):32 with open(self._led_file, 'wt') as fp:33 fp.write(str(on))34 def _blink(self, pattern):35 logging.debug("[led] using pattern '%s' ..." % pattern)36 for c in pattern:37 if c == ' ':38 self._led(1)39 else:40 self._led(0)41 time.sleep(self._delay / 1000.0)42 # reset43 self._led(0)44 def _worker(self):45 while True:46 self._event.wait()47 self._event.clear()48 self._is_busy = True49 try:50 if self._event_name in self.options['patterns']:51 pattern = self.options['patterns'][self._event_name]52 self._blink(pattern)53 else:54 logging.debug("[led] no pattern defined for %s" % self._event_name)55 except Exception as e:56 logging.exception("[led] error while blinking")57 finally:58 self._is_busy = False59 # called when the unit is updating its software60 def on_updating(self):61 self._on_event('updating')62 # called when there's one or more unread pwnmail messages63 def on_unread_inbox(self, num_unread):64 self._on_event('unread_inbox')65 # called when there's internet connectivity66 def on_internet_available(self, agent):67 self._on_event('internet_available')68 # called when everything is ready and the main loop is about to start69 def on_ready(self, agent):70 self._on_event('ready')71 # called when the AI finished loading72 def on_ai_ready(self, agent):73 self._on_event('ai_ready')74 # called when the AI starts training for a given number of epochs75 def on_ai_training_start(self, agent, epochs):76 self._on_event('ai_training_start')77 # called when the AI got the best reward so far78 def on_ai_best_reward(self, agent, reward):79 self._on_event('ai_best_reward')80 # called when the AI got the worst reward so far81 def on_ai_worst_reward(self, agent, reward):82 self._on_event('ai_worst_reward')83 # called when the status is set to bored84 def on_bored(self, agent):85 self._on_event('bored')86 # called when the status is set to sad87 def on_sad(self, agent):88 self._on_event('sad')89 # called when the status is set to excited90 def on_excited(self, agent):91 self._on_event('excited')92 # called when the status is set to lonely93 def on_lonely(self, agent):94 self._on_event('lonely')95 # called when the agent is rebooting the board96 def on_rebooting(self, agent):97 self._on_event('rebooting')98 # called when the agent is waiting for t seconds99 def on_wait(self, agent, t):100 self._on_event('wait')101 # called when the agent is sleeping for t seconds102 def on_sleep(self, agent, t):103 self._on_event('sleep')104 # called when the agent refreshed its access points list105 def on_wifi_update(self, agent, access_points):106 self._on_event('wifi_update')107 # called when the agent is sending an association frame108 def on_association(self, agent, access_point):109 self._on_event('association')110 # called when the agent is deauthenticating a client station from an AP111 def on_deauthentication(self, agent, access_point, client_station):112 self._on_event('deauthentication')113 # called when a new handshake is captured, access_point and client_station are json objects114 # if the agent could match the BSSIDs to the current list, otherwise they are just the strings of the BSSIDs115 def on_handshake(self, agent, filename, access_point, client_station):116 self._on_event('handshake')117 # called when an epoch is over (where an epoch is a single loop of the main algorithm)118 def on_epoch(self, agent, epoch, epoch_data):119 self._on_event('epoch')120 # called when a new peer is detected121 def on_peer_detected(self, agent, peer):122 self._on_event('peer_detected')123 # called when a known peer is lost124 def on_peer_lost(self, agent, peer):...
updatewindow.py
Source: updatewindow.py
...40 def _disconnect_events(self):41 gdb.events.stop.disconnect(self._on_event)42 gui.event.frame_changed.disconnect(self._on_event)43 @in_gdb_thread44 def _on_event(self, *args):45 self.on_event()46 @in_gtk_thread47 def deleted(self, *args):48 gdb.post_event(self._disconnect_events)...
events.py
Source: events.py
...24 index = handlers.index(handler_fn)25 handlers.pop(index)26 except ValueError:27 pass28def _on_event(typ, target, **kw):29 _check_type(typ)30 ref = target31 for handler in _event_handlers[typ]:32 result = handler(ref, **kw)33 if result is False:34 return False35 ref = result36 return ref37# Add/remove event handlers38def add_exception_info_handler(handler_fn, pos=None):39 _add_handler(EXCEPTION_INFO, handler_fn, pos)40def remove_exception_info_handler(handler_fn):41 _remove_handler(EXCEPTION_INFO, handler_fn)42def add_message_handler(handler_fn, pos=None):43 _add_handler(MESSAGE, handler_fn, pos)44def remove_message_handler(handler_fn):45 _remove_handler(MESSAGE, handler_fn)46def add_payload_handler(handler_fn, pos=None):47 _add_handler(PAYLOAD, handler_fn, pos)48def remove_payload_handler(handler_fn):49 _remove_handler(PAYLOAD, handler_fn)50# Event handler processing51def on_exception_info(exc_info, **kw):52 return _on_event(EXCEPTION_INFO, exc_info, **kw)53def on_message(message, **kw):54 return _on_event(MESSAGE, message, **kw)55def on_payload(payload, **kw):56 return _on_event(PAYLOAD, payload, **kw)57# Misc58def reset():59 for handlers in _event_handlers.values():...
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!!