Вот что у меня есть на данный момент:
Мой модуль называется myModule, и у меня есть подкаталоги с init .py для каждого из именованных 'actions' и 'xpaths', которые я импортирую.
from myModule import actions
в «действиях» У меня есть функция siteLogin, и я хочу использовать переменные из другой части моего модуля под названием xpaths:
from textLayer import xpaths
def siteLogin(webdriver, user, pass):
webdriver.get('https://www.youtube.com')
webdriver.find_element_by_xpath(xpaths.loginButtonXPath).click()
и, наконец, в textLayer у меня есть xpaths :
loginButtonXPath = '//*[@id="button"]'
но когда я пытаюсь запустить этот код из командной строки,
from selenium import webdriver
from myModule import actions
driver = webdriver.Firefox()
driver.implicitly_wait(10)
siteUser = 'myUsername'
sitePass = 'myPassword'
actions.siteLogin(driver, siteUser, sitePass)
я получаю сообщение об ошибке:
NameError: name 'loginButtonXPath' не определено
, и я попытался импортировать xpaths из командной строки, но это не сработало. Что действительно работает, так это ввести строку без использования переменной, но я хотел бы иметь возможность использовать переменную, чтобы ее можно было изменить в будущем.
Также ввод
print(xpaths.loginButtonXPath)
работает так, как предполагалось для печати строки, если я импортирую 'xpaths' в основной код.
Заранее благодарим за любую информацию.