Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
取消绑定LocalError:局部变量:在Python上_Python_Selenium_Jenkins - Fatal编程技术网

取消绑定LocalError:局部变量:在Python上

取消绑定LocalError:局部变量:在Python上,python,selenium,jenkins,Python,Selenium,Jenkins,我有这段代码要在Jenkins cloud上运行测试,运行正常,但在我的机器上有一个错误:UnboundLocalError:localvariable 我的代码: # -*- coding: utf-8 -*- import time import unittest import os from selenium import webdriver from com.POMProject.Pages.homePage import HomePage from com.POMProject.Pag

我有这段代码要在Jenkins cloud上运行测试,运行正常,但在我的机器上有一个错误:UnboundLocalError:localvariable 我的代码:

# -*- coding: utf-8 -*-
import time
import unittest
import os
from selenium import webdriver
from com.POMProject.Pages.homePage import HomePage
from com.POMProject.Pages.loginPage import LoginPage
from com.POMProject.Setup.urls import beta_url
from com.POMProject.Setup.users import *

class LoginTest(unittest.TestCase):

@classmethod
def setUp(cls):
    if os.getenv('CHROMEWEBDRIVER'):
        chromewebdriverbin = os.getenv('CHROMEWEBDRIVER')
    cls.driver = webdriver.Chrome(
        executable_path=chromewebdriverbin)
    cls.driver.implicitly_wait(50)
    cls.driver.delete_all_cookies()
    cls.driver.set_window_size(1224, 800)

def test_login_valid_user_password(self):
    driver = self.driver
    driver.get(beta_url)

    login = LoginPage(driver)
    home = HomePage(driver)

    home.click_user_icon()
    home.click_login_button()
    login.enter_user(user_email)
    login.click_next_button()
    login.enter_password(user_password)
    login.click_submit_button()
    driver.quit()
    print('Test Completed')
错误消息:

E       UnboundLocalError: local variable 'chromewebdriverbin' referenced before assignment
此错误消息

UnboundLocalError: local variable 'chromewebdriverbin' referenced before assignment
…表示变量在赋值之前就已被引用


分析 主要问题是,以下条件失败:

if os.getenv('CHROMEWEBDRIVER'):
因此,以下行:

chromewebdriverbin = os.getenv('CHROMEWEBDRIVER')
从不执行,变量chromewebdriverbin也从不赋值

在这种情况下,当您参考行中的
chromewebdriverbin
时:

cls.driver = webdriver.Chrome(executable_path=chromewebdriverbin)
提出了上述错误


理由 最可能的原因是,故障机器上未设置环境变量
chromewbdriver

此错误消息

UnboundLocalError: local variable 'chromewebdriverbin' referenced before assignment
…表示变量在赋值之前就已被引用


分析 主要问题是,以下条件失败:

if os.getenv('CHROMEWEBDRIVER'):
因此,以下行:

chromewebdriverbin = os.getenv('CHROMEWEBDRIVER')
从不执行,变量chromewebdriverbin也从不赋值

在这种情况下,当您参考行中的
chromewebdriverbin
时:

cls.driver = webdriver.Chrome(executable_path=chromewebdriverbin)
提出了上述错误


理由
最可能的原因是,故障机器上未设置环境变量
CHROMEWEBDRIVER

通过在本地机器中添加chromedriver进行修复:

    def setUp(cls):
    if os.getenv('CHROMEWEBDRIVER'):
        chromewebdriverbin = os.getenv('CHROMEWEBDRIVER')
    else:
        chromewebdriverbin = '/usr/bin/chromedriver'
    cls.driver = webdriver.Chrome(
        executable_path=chromewebdriverbin)

通过在本地机器中添加chromedriver修复:

    def setUp(cls):
    if os.getenv('CHROMEWEBDRIVER'):
        chromewebdriverbin = os.getenv('CHROMEWEBDRIVER')
    else:
        chromewebdriverbin = '/usr/bin/chromedriver'
    cls.driver = webdriver.Chrome(
        executable_path=chromewebdriverbin)
如果os.getenv('CHROMEWEBDRIVER')
为False,则不会分配'chromewebdriverbin'。
如果os.getenv('CHROMEWEBDRIVER')
为False,则不会分配'chromewebdriverbin'。