NameError:全局名称“浏览器”未定义

时间:2019-03-07 09:14:28

标签: python selenium-webdriver pytest acceptance-testing

我在Selenium Webdriver中使用Pycharm和Pytest。

我用以下代码设置了一个Initiate driver.py:

    om selenium import webdriver
from Library import ConfigReader


def start_browser():
    global browser

    if (ConfigReader.read_config_data('Details', 'Browser')) =="chrome":
        browser = webdriver.Chrome('chromedriver')

    elif (ConfigReader.read_config_data('Details', 'Browser')) =="firefox":
        browser = webdriver.Firefox('geckodriver')

    browser.get(ConfigReader.read_config_data('Details', 'Application_URL'))
    browser.maximize_window()
    return browser

def close_browser():
    browser.close()

我跑步时出现以下错误:

def start_browser():
    global browser

    if (ConfigReader.read_config_data('Details', 'Browser')) =="chrome":
        browser = webdriver.Chrome('chromedriver')

    elif (ConfigReader.read_config_data('Details', 'Browser')) =="firefox":
        browser = webdriver.Firefox('geckodriver')




>       browser.get(ConfigReader.read_config_data('Details', 'Application_URL'))
E       NameError: global name 'browser' is not defined

我将浏览器设置为全局浏览器,所以不确定为什么会出现此错误

1 个答案:

答案 0 :(得分:0)

第一件事:始终尝试避免使用global关键字。随着代码变得越来越长和越来越复杂,它会导致代码不稳定。

无论如何,您的代码说未定义全局变量,因为您没有在函数作用域之外定义名为global的{​​{1}}变量。

删除browser关键字。您不需要它,因为您将global返回到函数本身。

这里是什么样子

browser