Best Python code snippet using playwright-python
params_view.py
Source:params_view.py
...753# 754# def _ui_widgets(self):755# return [self.list]756# 757# def _on_dialog(self):758# from . import node_picker759# np = node_picker.NodePicker(760# self._param_editor.view,761# self._param_editor.view.client,762# 'Edit nodes in '+'/'.join(self._param_editor.param_infos['id']),763# default_root_name=self._options.get('root_name', None),764# extra_root_names=self._options.get('extra_root_names', {}),765# )766# np.allow_multiple_selection(self._multiple)767# np.set_selected_ids(self.get_value())768# result = np.exec_()769# if result == np.Accepted:770# self.list.clear()771# self.list.addItems(772# [ '/'.join(node_id) for node_id in np.get_picked_ids() ]773# )774# self.edit_finished()775# 776# def get_value(self):777# if self._multiple:778# return [ tuple(str(self.list.item(i).text()).split('/')) for i in range(self.list.count()) ]779# item = self.list.item(0)780# if item is None:781# return None782# return tuple(str(item.text()).split('/'))783# 784# def set_value(self, value):785# #print 'SET PY FROM TEXT, value:', repr(value)786# ValueEditorMixin.set_value(self, value)787# 788# if value is None:789# value = []790# if not isinstance(value, (list, tuple)):791# self.set_error('GUI ERROR: Not a node ref list: %r'%(value,))792# value = []793# 794# self.list.clear()795# if self._multiple:796# self.list.addItems(797# [ '/'.join(node_id) for node_id in value ]798# )799# else:800# self.list.addItem('/'.join(value))801# 802# def _set_edit_connections(self):803# pass804# #self.line_edit.textEdited.connect(self.edit_started)805# #self.line_edit.returnPressed.connect(self.edit_finished)806#807# def _set_read_only(self, b):808# self.tb.setEnabled(not b)809# self.list.setAcceptDrops(not b)810#811# def _list_dragEnterEvent(self, e):812# md = e.mimeData()813# #print '>>>>>', md.formats(), ':', [ md.data(f) for f in md.formats() ]814# if (815# md.hasFormat('kabaret/ids') 816# or md.hasFormat('text/plain')817# ):818# e.accept()819# else:820# e.ignore() 821#822# def _list_dragMoveEvent(self, e):823# if e.dropAction() == QtCore.Qt.LinkAction:824# e.accept()825# 826# def _list_dropEvent(self, e):827# md = e.mimeData()828# #print '>>>>> drop:', md.formats(), ':', [ md.data(f) for f in md.formats() ]829# if md.hasFormat('kabaret/ids'):830# value = str(md.data('kabaret/ids')).split('\n')831# if self._multiple:832# self.list.addItems(value)833# else:834# self.list.clear()835# self.list.addItem(value[0])836# elif md.hasFormat('text/plain'):837# if not self._multiple:838# self.list.clear()839# self.list.addItem(str(e.mimeData().text()))840# self.edit_finished()841#842#class NodeRefValueEditor(NodeRefsValueEditor):843# def __init__(self, *args, **kwargs):844# super(NodeRefValueEditor, self).__init__(*args, **kwargs)845# self.set_single()846# 847#class TriggerValueEditor(QtGui.QPushButton, ValueEditorMixin):848# def __init__(self, parent, param_editor, options):849# QtGui.QPushButton.__init__(self, parent)850# ValueEditorMixin.__init__(self, param_editor, options)851#852# def set_label(self, label=None):853# if label is None:854# label = 'Trigger' 855# self.setText(label)856# 857# def get_value(self):858# #print 'TRIGGER GET', self._param_editor.param_infos['id']859# return None860# 861# def set_value(self, value):862# #print 'TRIGGER SET', value, self._param_editor.param_infos['id']863# pass864# 865# def _set_edit_connections(self):866# self.clicked.connect(self.on_clicked)867# 868# def on_clicked(self):869# #print 'TRIGGER CLICK', self._param_editor.param_infos['id']870# self._param_editor.value_editor_set(None)871# self.set_busy()872#873# def _set_read_only(self, b):874# pass875# 876#class EditorFactory(object):877# def __init__(self):878# super(EditorFactory, self).__init__()879# self._default_type = PythonValueEditor880# self._editor_types = {881# 'int': IntValueEditor,882# 'date': DateValueEditor,883# 'bool': BoolValueEditor,884# 'trigger': TriggerValueEditor,885# 'node_refs': NodeRefsValueEditor,886# 'node_ref': NodeRefValueEditor,887# 'timestamp': TimestampValueEditor,888# 'percent': PercentValueEditor,889# 'pie': PieValueEditor,890# 'choice': ChoiceEditor,891# 'choices_for': ChoicesForEditor,892# 'relation_ids': RelationIdsEditor,893# }894# 895# def register(self, key, type, is_default=False):896# self._editor_types[key] = type897# 898# def create(self, parent, key, param_editor, options=None):899# return self._editor_types.get(key, self._default_type)(parent, param_editor, options or {})900class NodeRefsValueEditor(QtGui.QWidget, ValueEditorMixin):901 def __init__(self, parent, controller, options):902 QtGui.QWidget.__init__(self, parent)903 self._multiple = True904 905 layout = QtGui.QHBoxLayout()906 layout.setContentsMargins(0,0,0,0)907 layout.setSpacing(0)908 self.setLayout(layout)909 910 self.list = QtGui.QListWidget(self)911 self.list.itemDoubleClicked.connect(self._on_dble_click)912 self.list.setAcceptDrops(True)913 self.list.dragEnterEvent = self._list_dragEnterEvent914 self.list.dropEvent = self._list_dropEvent915 self.list.dragMoveEvent = self._list_dragMoveEvent916 self.list.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)917 self.list.customContextMenuRequested.connect(self._on_menu)918 layout.addWidget(self.list)919 920 self.tb = QtGui.QToolButton(self)921 self.tb.setText('+')922 self.tb.setIcon(resources.get_icon(('flow.icons.nodes', 'casting')))923 self.tb.pressed.connect(self._on_dialog)924 layout.addWidget(self.tb)925 if options.get('single'):926 self.set_single()927 928 ValueEditorMixin.__init__(self, controller, options)929 def set_single(self):930 self._multiple = False931 self.list.setSizePolicy(932 QtGui.QSizePolicy.MinimumExpanding,933 QtGui.QSizePolicy.Fixed,934 )935 height = self.list.fontMetrics().height()*1.5936 self.list.setMinimumSize(0, height)937 938 def _ui_widgets(self):939 return [self.list]940 941 def _on_dialog(self):942 from . import node_picker943 np = node_picker.NodePicker(944 self,945 self._controller.client,946 'Edit nodes in '+'/'.join(self._controller.value_id),947 default_root_name=self._options.get('root_name', None),948 extra_root_names=self._options.get('extra_root_names', {}),949 )950 np.allow_multiple_selection(self._multiple)951 np.set_selected_ids(self.get_value())952 result = np.exec_()953 if result == np.Accepted:954 self.list.clear()955 self.list.addItems(...
_page.py
Source:_page.py
...127 Page.Events.Console, from_channel(params["message"])128 ),129 )130 self._channel.on("crash", lambda _: self._on_crash())131 self._channel.on("dialog", lambda params: self._on_dialog(params))132 self._channel.on(133 "domcontentloaded", lambda _: self.emit(Page.Events.DOMContentLoaded)134 )135 self._channel.on(136 "download",137 lambda params: self.emit(138 Page.Events.Download, from_channel(params["download"])139 ),140 )141 self._channel.on(142 "fileChooser",143 lambda params: self.emit(144 Page.Events.FileChooser,145 FileChooser(146 self, from_channel(params["element"]), params["isMultiple"]147 ),148 ),149 )150 self._channel.on(151 "frameAttached",152 lambda params: self._on_frame_attached(from_channel(params["frame"])),153 )154 self._channel.on(155 "frameDetached",156 lambda params: self._on_frame_detached(from_channel(params["frame"])),157 )158 self._channel.on("load", lambda _: self.emit(Page.Events.Load))159 self._channel.on(160 "pageError",161 lambda params: self.emit(162 Page.Events.PageError, parse_error(params["error"]["error"])163 ),164 )165 self._channel.on(166 "popup",167 lambda params: self.emit(Page.Events.Popup, from_channel(params["page"])),168 )169 self._channel.on(170 "request",171 lambda params: self.emit(172 Page.Events.Request, from_channel(params["request"])173 ),174 )175 self._channel.on(176 "requestFailed",177 lambda params: self._on_request_failed(178 from_channel(params["request"]),179 params["responseEndTiming"],180 params["failureText"],181 ),182 )183 self._channel.on(184 "requestFinished",185 lambda params: self._on_request_finished(186 from_channel(params["request"]), params["responseEndTiming"]187 ),188 )189 self._channel.on(190 "response",191 lambda params: self.emit(192 Page.Events.Response, from_channel(params["response"])193 ),194 )195 self._channel.on(196 "route",197 lambda params: self._on_route(198 from_channel(params["route"]), from_channel(params["request"])199 ),200 )201 self._channel.on(202 "video",203 lambda params: cast(Video, self.video)._set_relative_path(204 params["relativePath"]205 ),206 )207 self._channel.on(208 "webSocket",209 lambda params: self.emit(210 Page.Events.WebSocket, from_channel(params["webSocket"])211 ),212 )213 self._channel.on(214 "worker", lambda params: self._on_worker(from_channel(params["worker"]))215 )216 def _set_browser_context(self, context: "BrowserContext") -> None:217 self._browser_context = context218 self._timeout_settings = TimeoutSettings(context._timeout_settings)219 def _on_request_failed(220 self,221 request: Request,222 response_end_timing: float,223 failure_text: str = None,224 ) -> None:225 request._failure_text = failure_text226 if request._timing:227 request._timing["responseEnd"] = response_end_timing228 self.emit(Page.Events.RequestFailed, request)229 def _on_request_finished(230 self, request: Request, response_end_timing: float231 ) -> None:232 if request._timing:233 request._timing["responseEnd"] = response_end_timing234 self.emit(Page.Events.RequestFinished, request)235 def _on_frame_attached(self, frame: Frame) -> None:236 frame._page = self237 self._frames.append(frame)238 self.emit(Page.Events.FrameAttached, frame)239 def _on_frame_detached(self, frame: Frame) -> None:240 self._frames.remove(frame)241 frame._detached = True242 self.emit(Page.Events.FrameDetached, frame)243 def _on_route(self, route: Route, request: Request) -> None:244 for handler_entry in self._routes:245 if handler_entry.matcher.matches(request.url):246 result = cast(Any, handler_entry.handler)(route, request)247 if inspect.iscoroutine(result):248 asyncio.create_task(result)249 return250 self._browser_context._on_route(route, request)251 def _on_binding(self, binding_call: "BindingCall") -> None:252 func = self._bindings.get(binding_call._initializer["name"])253 if func:254 asyncio.create_task(binding_call.call(func))255 self._browser_context._on_binding(binding_call)256 def _on_worker(self, worker: "Worker") -> None:257 self._workers.append(worker)258 worker._page = self259 self.emit(Page.Events.Worker, worker)260 def _on_close(self) -> None:261 self._is_closed = True262 self._browser_context._pages.remove(self)263 self.emit(Page.Events.Close)264 def _on_crash(self) -> None:265 self.emit(Page.Events.Crash)266 def _on_dialog(self, params: Any) -> None:267 dialog = from_channel(params["dialog"])268 if self.listeners(Page.Events.Dialog):269 self.emit(Page.Events.Dialog, dialog)270 else:271 asyncio.create_task(dialog.dismiss())272 def _add_event_handler(self, event: str, k: Any, v: Any) -> None:273 if event == Page.Events.FileChooser and len(self.listeners(event)) == 0:274 self._channel.send_no_reply(275 "setFileChooserInterceptedNoReply", {"intercepted": True}276 )277 super()._add_event_handler(event, k, v)278 def remove_listener(self, event: str, f: Any) -> None:279 super().remove_listener(event, f)280 if event == Page.Events.FileChooser and len(self.listeners(event)) == 0:...
gui_menu.py
Source:gui_menu.py
...132 obj=None):133 item = wx.MenuItem(menu, id, title+'...')134 self._gui._panel_sess.Bind(135 wx.EVT_MENU,136 lambda e: self._on_dialog(e, title, targ, obj), item)137 menu.Append(item)138 if append is not None:139 if isinstance(append, list):140 for a in append:141 getattr(self._gui, '_menu_'+a+'_id').append(id)142 else:143 getattr(self._gui, '_menu_'+append+'_id').append(id)144 item.Enable(False)145 else:146 item.Enable(enable)147 def _on_dialog(self, event, title, attr, obj=None):148 if isinstance(attr, list):149 dlg = GUIDialogMethods(self._gui, title, attr, obj,150 params_last=self._params_last)151 else:152 dlg = GUIDialogMethod(self._gui, title, attr, obj,153 params_last=self._params_last)154 self._params_last = dlg._params155 def _on_dialog_mini_defs(self, event, title, targ, log=True):156 if log:157 sess = self._gui._sess_sel158 sess.log.append_full('_menu', '_on_dialog_mini_defs',159 {'event': None, 'title': title, 'targ': targ})160 if hasattr(self._gui, '_dlg_mini_graph'):161 self._gui._dlg_mini_defs._refresh()...
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!!