Giter Club home page Giter Club logo

clicknium-docs's Introduction

PyPI version GitHub issues PyPI - Python Version Twitter URL Slack Status Discord

Clicknium-docs

Clicknium is a next-generation GUI automation framework for various types of applications. It offers a simple and streamlined developer experience with high-level APIs for automating GUI applications and intelligent plug-ins. It gives you a fresh approach to creating your automation universe. Browser automation, web and desktop application testing, and site scraping bots are also supported.

Requirements

Main version
Python 3.7, 3.8, 3.9, 3.10, 3.11
OS Windows 11, 10 recommended, Windows 7 SP1 or above

Note: Windows 10 is the minimum supported Windows OS for DPI awareness.

Code Editor

  • Visual Studio Code

Getting Started

Get a sample script showing the automation of the web page and notepad.

Installation​

Set Up Clicknium Visual Studio Code Extension

  1. Install the Extension (or search Clicknium in Visual Studio Code Extension marketplace).
    VSCExtensions

  2. Click CLICKNIUM EXPLORER in Visual Studio Code Activity Bar

  3. Follow the welcome page:

    • Check the Python environment.
    • Install Clicknium Python module, as well as pip install clicknium
    • Select and install the browser extensions, at least including Edge. Enable the extension after the installation.
    • Sign in to start for free.

    welcomepage

To Reopen Welcome Page: open the Command Palette: Ctrl+Shift+P, input Clicknium:Welcome

To Enable Edge Extension: Open Edge browser, type edge://extensions/ into the address bar and enable Clicknium Recorder extension as below:

enable edge extension

Setup Sample Project

  • Click Clicknium: Sample on Welcome Page. Or invoke the Command Palette by pressing Ctrl+Shift+P and inputting Clicknium: Sample`.
  • Choose a path to locate the sample project.

The sample.py contains two automation samples, one is Edge web automation, and the other is notepad automation.

import subprocess
from time import sleep
from clicknium import clicknium as cc, locator, ui

def main():
    # sample code to demo web automation and desktop application
    tab = cc.edge.open("https://www.bing.com/")
    tab.find_element(
        locator.new_store.sample.bing.search_sb_form_q).set_text('clicknium')
    tab.find_element(locator.new_store.sample.bing.svg).click()
    sleep(3)
    tab.close()

    process = subprocess.Popen("notepad")
    ui(locator.new_store.sample.notepad.document_15).set_text("clicknium")
    sleep(3)

if __name__ == "__main__":
    main()

Run the Sample

In Visual Studio Code, open sample.py and press Ctrl+F5 to run the script. It will do:

  • Open a search engine page
  • Input a keyword and click the search button
  • Open a notepad
  • Input text to notepad

Next

Learn how to start an automation project from zero.

Contact

Welcome to create a Github Issue or join Clicknium Slack if you have any questions.

clicknium-docs's People

Contributors

diceyclickcorp avatar dragonli-mi avatar jasonxuclickcorp avatar kayyolo avatar louishq avatar luluyu2022 avatar robinbob avatar ruiminbao avatar sunmfeng avatar wangdawei00 avatar xiaoxinbo118 avatar yanzhiwei avatar yongjuntian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

clicknium-docs's Issues

Any way to speed up execution of a script?

I wrote a simple Clicknium script that downloads icons from Iconify. Here's the script:

from time import sleep
from clicknium import clicknium as cc, locator

def main():
    tab = cc.firefox.open("https://icon-sets.iconify.design/fluent-mdl2/")
    sleep(2)
    icons = cc.find_elements(locator.iconify.icon_sets.iconify_icon_selector)
    for icon in icons:
        icon.click()
        downloadBtn = cc.find_element(locator.iconify.icon_sets.download_svg_icon)
        downloadBtn.click()

if __name__ == "__main__":
    main()

It's working great, but I'd like to really turbocharge the process as much as possible. A few questions:

  1. Can I execute downloads in parallel?
  2. Is there any method to speed up the process of locating and clicking on an icon?
  3. Is there any method to speed up the process of clicking on the download button?

Any help greatly appreciated.

Youtube Upload button is not working using this

I have tried to automate the YouTube using clicknium but I am not able to click on the upload button i tired multiple times but not working as expected. also, every time it was saying the clicknium started to be debugging the browser but in the video that was not showing anything I have tried with this also no proper documentation and no customer support properly please someone help me with this.
Attached the code for reference :

from clicknium import clicknium as cc,locator,ui
from time import sleep

tab = cc.chrome.open("https://www.youtube.com")
sleep(8)
cc.find_element(locator.youtube.yt_icon_button_button).click(mouse_button = "left") #tried with just click() also
print("done 1")
sleep(5)
print("DOne 3")
cc.find_element(locator.youtube.link_style_scope_ytd_compact_link_renderer).click(mouse_button = "left")
print("done 2")
sleep(5)
tab.close()

If anyone was aware of this, please tell us or if there is any mistake in this code, please let us know

Can it run in the background?

运行环境

  • 操作系统:Windows 11 专业版 22H2
  • VS Code:1.77.3
  • Python:3.11.2
  • clicknium-module:0.1.14

问题描述
是否能够使自动化在后台运行,目前运行后,点击其他窗口,会一直弹回到Edge浏览器,影响其他工作进行。

无法正常运行示例(sample.py)脚本

运行环境

  • 操作系统:Windows 11 家庭中文版
  • VS Code:1.76.2
  • Python:3.8.10
  • clicknium-module:0.1.12

问题描述
在 VS Code中通过 Ctrl+Shift+P 快捷键,输入 Clicknium: Sample 得到了 sample.py 文件,按 F5 运行脚本出现如下报错。
1680060302802

错误信息
c:; cd 'c:\wxApplets\demo'; & 'C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\python.exe' 'c:\wxApplets\vscode\vsExtensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '61024' '--' 'C:\wxApplets\demo\sample.py' python\debugpy\ada Traceback (most recent call last): File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "c:\wxApplets\vscode\vsExtensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 39, in <module> cli.main() File "c:\wxApplets\vscode\vsExtensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main run() File "c:\wxApplets\vscode\vsExtensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file runpy.run_path(target, run_name="__main__") File "c:\wxApplets\vscode\vsExtensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 321, in run_path return _run_module_code(code, init_globals, run_name, File "c:\wxApplets\vscode\vsExtensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 135, in _run_module_code _run_code(code, mod_globals, init_globals, File "c:\wxApplets\vscode\vsExtensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 124, in _run_code exec(code, run_globals) File "C:\wxApplets\demo\sample.py", line 3, in <module> from clicknium import clicknium as cc, locator, ui File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\site-packages\clicknium\__init__.py", line 5, in <module> from clicknium.core.models.web.webdriver import WebDriver File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\site-packages\clicknium\core\models\web\webdriver.py", line 1, in <module> from clicknium.core.models.web.basewebdriver import BaseWebDriver File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\site-packages\clicknium\core\models\web\basewebdriver.py", line 4, in <module> from clicknium.core.models.web.browser import Browser File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\site-packages\clicknium\core\models\web\browser.py", line 2, in <module> from clicknium.core.models.web.browsertab import BrowserTab File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\site-packages\clicknium\core\models\web\browsertab.py", line 6, in <module> from clicknium.core.models.uielement import UiElement File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\site-packages\clicknium\core\models\uielement.py", line 13, in <module> from clicknium.core.service.invokerservice import _ConvertBaseTypeService, _ConvertOptionService, _ExceptionHandle import clr File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\site-packages\clr.py", line 6, in <module> load() File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\site-packages\pythonnet\__init__.py", line 143, in load if func(b"") != 0: File "C:\Users\飞鱼2\AppData\Local\Programs\Python\Python38\lib\site-packages\clr_loader\types.py", line 64, in __call__ return self._callable(ffi.cast("void*", buf_arr), len(buf_arr))RuntimeError: cannot call null pointer pointer from cdata 'int(*)(void *, int)'

Locator Folder Configuration

I would like to ask some questions about the tool.
When selecting the element, a ".locator" folder is generated in the root folder of the project, knowing that if I wanted to move this ".locator" folder to another location, for example: C:\Users\user \Documents\ .locator . Where in the code can I configure this?

I'm asking this because I built the project to run in a python environment, whenever I run it in that environment it gives an error and when I run it locally it works, this with the folder that is at the root of the project.

So I would like to know how can I do this folder configuration?

I'm waiting for an answer. Thank you very much!

cc.edge.browsers memory leak

Hello,
I'm using the clicknium in some of my projects and I have found something disturbing there. To show this I have prepared some simple script like below:

    from clicknium import clicknium as cc
    from time import sleep

    if not cc.edge.extension.is_installed():
        cc.edge.extension.install_or_update()

    while True:
        cc.edge.browsers
        sleep(0.2)

Running this script will increase memory usage continuously.

Same if I will use script below:

      from clicknium import clicknium as cc

      if not cc.edge.extension.is_installed():
          cc.edge.extension.install_or_update()

      cc_browsers = cc.edge.browsers
      while True:
          for browser in cc_browsers:
              for tab in browser.tabs:
                  print(tab.title)

Could you give me any update about this?

Have a nice day!

Multiple windows application.

Greetings.
Thank you for this awesome package.
But i can't find docs for Win applications, especially for manipulating multiple applications with same name.
Is it possible? If yes - could you show some example or doc?

Caton occurs in continuous operation

1682426885837
When the program runs some ui(locator.xxx.button_xx).click() operations, there will be a period of freeze time, and it will continue to run after about 10 seconds without interrupting the program or reporting an error. What is the reason. I use Validate to find this stuck control, and I can find it. Is it because the previous operation of the stuck operation closed a window, do you need to switch windows? When the window is closed, the window for the next operation to be found is at the top.

I tried to add a delay of 1 second per step, but it still doesn't work

Windows 11
Python 3.11.2
Clicknium 0.1.14

怎么执行JavaScript脚本

你好 怎么执行JavaScript脚本,为什么没有示例,调用 execute_js方法执行一直是不成功的

clicknium.send_text does not support str with "+"?

i use clicknium for windows desktop software called wxworklocal, like QQ. When working with the password, i found it can not input the correct password, It always miss one letter, i thought it's because my password has symbol "+" in it. But when i input password manually, it's correct.
How can i fix this bug? I've looking for the document but found nothing
image

AttributeError: 'NoneType' object has no attribute 'Click'

I can make the same object click through locators>actions>click but it gives this error when trying to use tab.find_element(locator.chrome.button_solve_the_challenge).click() Maybe is it because it opens a captcha pop-up and can't see it?

how to get cookies?

When clicknium is used to automatically log in to the website,how to get the login cookie value
thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.