Beispiel #1
0
def test_image_match():
    class MockDevice():
        def __init__(self):
            self.x = None
            self.y = None

        def click(self, x, y):
            self.x = x
            self.y = y

        def screenshot(self, *args, **kwargs):
            return cv2.imread(TESTDIR + "/screenshot.jpg")

    d = MockDevice()
    ix = u2image.ImageX(d)
    template = Image.open(TESTDIR + "/template.jpg")
    res = ix.match(template)

    x, y = res['point']
    assert (x, y) == (409, 659), "Match position is wrong"

    ix.click(template)
    assert d.x == 409
    assert d.y == 659

    if False:  # show position
        pim = Image.open(TESTDIR + "/screenshot.jpg")
        nim = u2image.draw_point(pim, x, y)
        nim.show()
Beispiel #2
0
def main():
    d = u2.connect("30.10.93.26")

    # d.widget.click("00013#推荐歌单第一首")

    d.widget.exists("lo/00019#播放全部")
    return

    d.widget.click("00019#播放全部")
    # d.widget.click("00018#播放暂停")
    d.widget.click("00018#播放暂停")
    d.widget.click("00021#转到上一层级")
    return

    d.widget.click("每日推荐")
    widget_id = "00009#上新"
    widget_id = "00011#每日推荐"
    widget_id = "00014#立减20"
    result = d.widget.match(widget_id)
    # e = Widget(d)
    # result = e.match("00003")
    # print(result)
    # # e.match("00002")
    # # result = e.match("00007")

    wsize = d.window_size()
    from lxml import etree

    result = d.widget.match(widget_id)
    pprint(result.node.attrib)
    pprint(result.score)
    pprint(result.detail)

    show_click_position(d, result.point)
    return

    root = etree.parse(
        '/Users/shengxiang/Projects/weditor/widgets/00010/hierarchy.xml')
    nodes = root.xpath('/hierarchy/node/node/node/node')
    a, b = nodes[0], nodes[1]
    result = d.widget.hybird_compare_node(a, b, wsize, wsize)
    pprint(result)
    score = d.widget._hybird_result_to_score(result)
    pprint(score)
    return

    score = d.widget._compare_node(a, b, wsize, wsize)
    print(score)

    a, b = nodes[0].getparent(), nodes[1].getparent()
    score = d.widget._compare_node(a, b, wsize, wsize)
    pprint(score)

    return

    print("score:", result.score)
    x, y = result.point
    # # pprint(result.widget)
    # # pprint(dict(result.node.attrib))
    pprint(result.detail)
    im = draw_point(d.screenshot(), x, y)
    im.show()
Beispiel #3
0
def show_click_position(d: u2.Device, point: Point):
    # # pprint(result.widget)
    # # pprint(dict(result.node.attrib))
    im = draw_point(d.screenshot(), point.x, point.y)
    im.show()