File: gedit-test-utf8-tree-api.py

package info (click to toggle)
dogtail 1.0.7-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,240 kB
  • sloc: python: 6,124; makefile: 56; sh: 7
file content (52 lines) | stat: -rwxr-xr-x 1,932 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# -*- coding: utf-8 -*-
import os
from dogtail import tree
from dogtail.utils import run
from dogtail.predicate import GenericPredicate


def gedit_text_tree_api_demo():
    os.environ["LANG"] = "en_US.UTF-8"

    # Remove the output file, if it's still there from a previous run
    if os.path.isfile(os.path.join("/tmp", "UTF8demo.txt")):
        os.remove(os.path.join("/tmp", "UTF8demo.txt"))

    # Start gedit.
    # Get a handle to gedit's application object.
    os.system("killall gedit") # preventing the undesired result if the sript is started multiple times in a row
    run("gedit")
    gedit = tree.root.application("gedit")

    # Get a handle to gedit's text object.
    text_buffer = gedit.findChildren(GenericPredicate(roleName="text"))[1]
    # is equal to
    # text_buffer = gedit.findChild(lambda x: x.roleName=="text" and x.showing) # we can specify search by another attribute - showing
    # Load the UTF-8 demo file.
    # Set the attribute to the given text object
    with open(os.path.abspath(".") + "/data/UTF-8-demo.txt", "r") as open_file:
        text_buffer.text = open_file.read()


    # Get a handle to gedit's Save button and click.
    save_button = gedit.findChild(lambda x: x.name == "Save" and x.roleName in ("button", "push button"))
    save_button.click()


    # We want to save to the file name 'UTF8demo.txt'.
    dialog = gedit.findChild(lambda x: "Save As" in x.name and x.roleName == "file chooser")
    dialog.child(roleName="text").text = "/tmp/UTF8demo.txt"


    # Get a handle to gedit's Save dialog and click.
    save_as_button = gedit.findChildren(lambda x: "Save" in x.name)[-1]
    save_as_button.click()


    # Let's quit now.
    gedit.child("Menu", "toggle button").click()
    # Sometimes the node is not unique so you need to specify another attribute to look for
    gedit.findChild(lambda x: x.name == "Close" and x.showing).click()


gedit_text_tree_api_demo()