Best Python code snippet using uiautomator
xkb.py
Source: xkb.py
1# -*- python -*-2'''3xpybar â xmobar replacement written in python4Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Mattias Andrée (maandree@kth.se)5This program is free software: you can redistribute it and/or modify6it under the terms of the GNU General Public License as published by7the Free Software Foundation, either version 3 of the License, or8(at your option) any later version.9This program is distributed in the hope that it will be useful,10but WITHOUT ANY WARRANTY; without even the implied warranty of11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12GNU General Public License for more details.13You should have received a copy of the GNU General Public License14along with this program. If not, see <http://www.gnu.org/licenses/>.15'''16import Xlib.XK17from x import *18class XKB:19 '''20 X keyboard monitor21 '''22 23 24 NUM = 125 '''26 :int The bit in `get_locks` representing Num Lock27 '''28 29 CAPS = 230 '''31 :int The bit in `get_locks` representing Royal Canterlot Voice32 '''33 34 SCROLL = 435 '''36 :int The bit in `get_locks` representing Scroll Lock37 '''38 39 40 def __init__(self):41 '''42 Constructor43 '''44 self.__root = get_screen().root45 46 lockkey = lambda lock : get_display().keysym_to_keycode(Xlib.XK.string_to_keysym(lock + '_Lock'))47 find = lambda array, item : (1 << array.index(item)) if item in array else -148 mods = [x[0] for x in get_display().get_modifier_mapping()]49 50 self.__num = find(mods, lockkey('Num'))51 self.__caps = find(mods, lockkey('Caps'))52 self.__scroll = find(mods, lockkey('Scroll'))53 54 55 # TODO add update listener56 def get_locks(self):57 '''58 Get the currently active lock keys (num lock, caps lock and scroll lock, but not compose)59 60 @return :int The bitwise OR of the active lock keys (XKB.NUM, XKB.CAPS, XKB.SCROLL)61 '''62 mask = self.__root.query_pointer().mask63 rc = 064 rc |= XKB.NUM if (mask & self.__num) == self.__num else 065 rc |= XKB.CAPS if (mask & self.__caps) == self.__caps else 066 rc |= XKB.SCROLL if (mask & self.__scroll) == self.__scroll else 067 return rc68 69 70 def get_locks_str(self):71 '''72 Get the currently active lock keys (num lock, caps lock and scroll lock, but not compose)73 74 @return :list<str> A list of locks in title case ('Num', 'Caps', 'Scroll')75 '''76 mask = self.__root.query_pointer().mask77 rc = []78 if (mask & self.__num) == self.__num: rc.append('Num')79 if (mask & self.__caps) == self.__caps: rc.append('Caps')80 if (mask & self.__scroll) == self.__scroll: rc.append('Scroll')...
scrollableFrame.py
Source: scrollableFrame.py
1import tkinter as tk23class ScrollableFrame(tk.Frame):45 def __init__(self, parent, config, **args):6 super().__init__(parent, args)78 self.__active_scroll = False910 self.__config = config11 self.__canvas = tk.Canvas(self, args)12 self.__frame = tk.Frame(self.__canvas, args)13 self.__scroll = tk.Scrollbar(self, command = self.__canvas.yview)14 self.__canvas.configure(yscrollcommand = self.__scroll_set)1516 self.__canvas.pack(fill = tk.BOTH, expand = True)17 self.__canvas.create_window((0, 0), window = self.__frame, anchor = tk.NW)1819 self.bind("<Configure>", self.__on_configure)20 self.bind('<Enter>', self.__bind_scroll)21 self.bind('<Leave>', self.__unbind_scroll)22 self.__frame.bind("<Configure>", self.on_frame_configure)2324 def __scroll_set(self, lo, hi):25 self.__active_scroll = float(lo) > 0.0 or float(hi) < 1.026 if self.__active_scroll:27 self.__scroll.place(28 x = self.winfo_width() - self.__scroll.winfo_width(),29 relheight = 1)30 else:31 self.__scroll.place_forget()32 self.__on_configure(None)33 self.__scroll.set(lo, hi)3435 def __on_configure(self, _event):36 width = self.winfo_width()37 if self.__active_scroll:38 width -= self.__scroll.winfo_width()39 self.__config(width)4041 def on_frame_configure(self, _event):42 self.__canvas.configure(scrollregion = self.__canvas.bbox(tk.ALL))4344 def __bind_scroll(self, _event):45 self.__canvas.bind_all("<MouseWheel>", self.__mouse_scroll)46 self.__canvas.bind_all("<Button-4>", self.__mouse_scroll)47 self.__canvas.bind_all("<Button-5>", self.__mouse_scroll)4849 def __unbind_scroll(self, _event):50 self.__canvas.unbind_all("<MouseWheel>")51 self.__canvas.unbind_all("<Button-4>")52 self.__canvas.unbind_all("<Button-5>")5354 def __mouse_scroll(self, event):55 if not self.__active_scroll:56 return57 self.__canvas.yview_scroll(1 if event.num == 5 or event.delta < 0 else -1, tk.UNITS)5859 def get_inner_frame(self):60 return self.__frame6162 def get_canvas(self):
...
Derecha.py
Source: Derecha.py
1# -*- coding: utf-8 -*-2import gi3gi.require_version("Gtk", "3.0")4from gi.repository import Gtk5from JAMediaPlayer.derecha.BalanceWidget import BalanceWidget6#from JAMediaPlayer.derecha.EqualizerWidget import EqualizerWidget7from JAMediaPlayer.derecha.JAMediaPlayerList import PlayerList8from JAMediaPlayer.derecha.PlayerControls import PlayerControls9from JAMediaPlayer.Globales import ocultar10from JAMediaPlayer.Globales import mostrar11class Derecha(Gtk.VBox):12 13 def __init__(self):14 Gtk.VBox.__init__(self)15 self.balance = BalanceWidget()16 #self.equalizer = EqualizerWidget()17 self.lista = PlayerList()18 self.playercontrols = PlayerControls()19 balanceFrame = Gtk.Frame()20 balanceFrame.set_label(" Balance: ")21 balanceFrame.get_label_widget().get_style_context().add_class('equalizerlabelframe')22 balanceFrame.add(self.balance)23 #equalizerFrame = Gtk.Frame()24 #equalizerFrame.set_label(" Ecualizador: ")25 #equalizerFrame.get_label_widget().get_style_context().add_class('equalizerlabelframe')26 #equalizerFrame.add(self.equalizer)27 confbox = Gtk.VBox()28 confbox.get_style_context().add_class("equalizerbox")29 confbox.pack_start(balanceFrame, False, False, 0)30 #confbox.pack_start(equalizerFrame, False, False, 10)31 self.__scroll = Gtk.ScrolledWindow()32 self.__scroll.get_style_context().add_class('scrolllist')33 self.__scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)34 self.__scroll.add_with_viewport(confbox)35 self.pack_start(self.__scroll, True, True, 0)36 self.pack_start(self.lista, True, True, 0)37 self.pack_end(self.playercontrols, False, False, 0)38 self.show_all()39 self.lista.lista.connect("len_items", self.__len_items)40 def __len_items(self, widget, items):41 self.playercontrols.activar(items)42 def show_config(self, val):43 if val:44 mostrar([self.__scroll])45 ocultar([self.lista, self.playercontrols])46 else:47 ocultar([self.__scroll])48 mostrar([self.lista, self.playercontrols])49 50 def setup_init(self):51 ocultar([self.__scroll])...
Check out the latest blogs from LambdaTest on this topic:
Web applications continue to evolve at an unbelievable pace, and the architecture surrounding web apps get more complicated all of the time. With the growth in complexity of the web application and the development process, web application testing also needs to keep pace with the ever-changing demands.
Before we discuss the Joomla testing, let us understand the fundamentals of Joomla and how this content management system allows you to create and maintain web-based applications or websites without having to write and implement complex coding requirements.
“Test frequently and early.” If you’ve been following my testing agenda, you’re probably sick of hearing me repeat that. However, it is making sense that if your tests detect an issue soon after it occurs, it will be easier to resolve. This is one of the guiding concepts that makes continuous integration such an effective method. I’ve encountered several teams who have a lot of automated tests but don’t use them as part of a continuous integration approach. There are frequently various reasons why the team believes these tests cannot be used with continuous integration. Perhaps the tests take too long to run, or they are not dependable enough to provide correct results on their own, necessitating human interpretation.
With new-age project development methodologies like Agile and DevOps slowly replacing the old-age waterfall model, the demand for testing is increasing in the industry. Testers are now working together with the developers and automation testing is vastly replacing manual testing in many ways. If you are new to the domain of automation testing, the organization that just hired you, will expect you to be fast, think out of the box, and able to detect bugs or deliver solutions which no one thought of. But with just basic knowledge of testing, how can you be that successful test automation engineer who is different from their predecessors? What are the skills to become a successful automation tester in 2019? Let’s find out.
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!