取消绑定LocalError:局部变量:在Python上
我有这段代码要在Jenkins cloud上运行测试,运行正常,但在我的机器上有一个错误:UnboundLocalError:localvariable 我的代码:取消绑定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
# -*- 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'。