Веди корнишон питона, пиаутогуй - PullRequest
0 голосов
/ 26 апреля 2018
Scenario: Navigate from overview to system details
    Given the login page is displyed
    When log in is selected
    the user selects a red bubble
    Then bubble-details are displayed


@When('the user selects a red bubble')
def click_checkpoint(self):
    def find_checkpoint(self):
        p = pyautogui.locateOnScreen('venv/screens/2018-04-26_0806.png')
        c = pyautogui.center(p)
        d = list(c)
    find_checkpoint(pyautogui.click(d[0], d[1], duration=1))

Я получаю сообщение об ошибке: Файл "src \ Playground \ Navigation \ steps \ взаимодействия.py", строка 55, в click_checkpoint find_checkpoint (pyautogui.click (d [0], d [1], длительность = 1)) NameError: имя 'd' не определено

очевидно, что я не правильно структурировал питона, но у меня не хватает навыков для его устранения, возможно, у кого-то есть быстрое решение.

Цель состоит в том, чтобы определить pyautogui и запустить его сразу после, но на том же шаге

1 Ответ

0 голосов
/ 26 апреля 2018

Это потому, что d определено в балле во внутренней функции find_checkpoint

Когда вы определяете функцию, все переменные в них становятся локальными. Если вам ДЕЙСТВИТЕЛЬНО нужно, чтобы переменные были глобальными, вы можете использовать ключевое слово global.

См. Этот вопрос о правилах определения объема

Я считаю, что вам действительно нужно вернуть значение d и затем присвоить его;

@When('the user selects a red bubble')
def click_checkpoint(self):
    def find_checkpoint(self):
        p = pyautogui.locateOnScreen('venv/screens/2018-04-26_0806.png')
        c = pyautogui.center(p)
        return list(c)
    d = find_checkpoint(self)
    find_checkpoint(pyautogui.click(d[0], d[1], duration=1))
...