Selenium Python “名称错误” 我肯定遗漏了什么明显的东西

2 投票
1 回答
919 浏览
提问于 2025-04-18 03:48

我刚开始写自动化测试,感觉自己一定漏掉了什么很明显的东西。

这是我的代码。

Class BIIAccountPreferencesTest(CoreTest):
def testAccountPreferences(self):
    lp = BIILoginPage(self.driver)
    hp = lp.biiLoginUser(config.biisubscriber_username , config.biisubscriber_password)
    d = self.driver     
    print "\n Changing user and company name"
    d.get(config.bii_url + '/account')
    d.find_element_by_css_selector('#user-fullname').clear()
    d.find_element_by_css_selector('#user-company').clear()
    d.find_element_by_css_selector('#user-fullname').send_keys(random.choice(string.ascii_uppercase) for x in range(7))
    d.find_element_by_css_selector('#user-company').send_keys(random.choice(string.ascii_uppercase) for x in range (5))
    d.find_element_by_css_selector('#user-Save').click()

    a = d.find_element_by_css_selector('body > div.container.clearfix > p').text
    b = "Your account information has been updated"
    self.assertTrue(str(b) in str(a))

当我运行这段代码时,总是出现这个错误:“NameError: name 'd' is not defined”,我是不是在不对的时机声明 d = self.driver?我用 self.driver 是因为我是在通过 saucelabs 运行这个测试。

1 个回答

2

你的代码里混用了制表符和空格,这样的缩进方式并不是你想的那样。

只要把你的编辑器设置成完全不使用制表符(好的编辑器可以做到这一点,同时还可以用Tab键来缩进)。

撰写回答