python中的全局变量问题

时间:2016-02-08 09:08:02

标签: python selenium

我遇到了在python文件中声明的全局变量的问题。 我在文件中没有类声明。 我只是在类中声明了一些没有类型的变量。 并修改函数中的变量。

当我通过导入它们在另一个类中调用这些变量时, 而不是修改后的值,它只返回None类型。

以下是代码

from selenium import webdriver
from Pages.PageMethods.Google_Methods import Methods


browser = None
s = None


def before_feature(context, feature):
    print("before feature")

def before_scenario(context, scenario):
    print('before scenario', scenario.name)
    context.driver = webdriver.Firefox()
    #context.driver.maximize_window()
    browser = context.driver
    global s
    s = Methods(browser)
    s.samplemethod()

def after_scenario(context, scenario):
    print("after scenario", scenario.name)
    context.driver.quit()

def after_feature(context, feature):
    print("after feature")

- >这里我在另一个类中调用那个'变量',它只返回None类型而不是该分配类的对象

请有人帮忙

这是我调用该变量的代码

from features.environment import *


use_step_matcher("re")

fileConfig('logging.ini')
log = logging.getLogger('sLogger')


@given("i am on google page '(.*)'")
def navigate(context, url1):
    context.url = url1
    log.info("this is log statement")
    context.driver.get(url1)
    context.driver.implicitly_wait(10)


@then("I enter value into search box as '(.*)'")
def step_impl(context, text):
    print("selector:=>", Google.search_box)
    context.driver.find_element(*Google.search_box).send_keys(text)
    print("url in second step is:=>", context.url)
    time.sleep(1)
    s.printtitle()

我收到了这个错误:

AttributeError:'NoneType'对象没有属性'printtitle'

1 个答案:

答案 0 :(得分:0)

您需要使用全局运算符

示例:

global_var = list()

def somefunc():
    global global_var

    global_var.append(1)

somefunc()
print global_var

出: [1]