У меня есть два файла:NameError при вызове метода
содержатся все мои функции funclib.py
import os
from selenium import webdriver
from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.common.action_chains import ActionChains
import time
def deviceSelection():
desired_caps = {}
desired_caps['appium-version'] = '1.0'
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '8.2'
desired_caps['deviceName'] = 'iPhone 6'
desired_caps['app'] = os.path.abspath('/Users/admin/Library/Developer/Xcode/DerivedData/testapp-bfpdodvceugohuaaiiukkrcsrdqh/Build/Products/Debug-iphonesimulator/testapp.app')
global wd
wd = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps)
wd.implicitly_wait(60)
И у меня есть еще один файл scripts.py который будет вызывать эту функцию.
import os
from selenium import webdriver
from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.common.action_chains import ActionChains
import time
import sys
sys.path.append('/Users/admin/Desktop/Suite/Global Scripts/')
from funcLib import *
deviceSelection();
def firsttri():
wd.find_element_by_name("Accept").click()
time.sleep(5)
wd.find_element_by_name("Sign In").click()
time.sleep(5)
wd.find_element_by_name("Need help?").click()
time.sleep(5)
wd.find_element_by_name("Close").click()
time.sleep(5)
firsttri();
Когда я исполняю scripts.py, я получаю сообщение об ошибке
wd.find_element_by_name("Accept").click()
NameError: global name 'wd' is not defined
Не знаю, почему. Может кто-нибудь мне помочь ?
wd определяется только локально, а не глобально. Когда deviceSelection() заканчивается, wd больше не существует. – Stiffo
Предлагаемое чтение: учебник python по [Глобальные и локальные переменные] (http://www.python-course.eu/global_vs_local_variables.php) – Mel
@Stiffo: Я объявил wd глобальной переменной. Но все равно такая же ошибка –