从其他类/模块修改静态类变量

时间:2016-04-19 07:49:14

标签: python selenium

在其他帖子中找不到我的问题的具体答案,所以在这里:

我需要从不同的类/模块修改静态类变量。我使用静态变量admin

获取了我的LoginPage类
class LoginPage(BasePage):

    #Users 
    admin = ["testemail1@gmail.com","Password1234!"]
    basicUser = ["testemail1@gmail.com", "Password1234!"]

我得到了我的个人资料测试类,它使用了changepassword方法/测试:

class MyProfileTests(BaseTestCase, LoginPage):
    def test_change_password(self):
        try:
            self.loginAs(self.basicUser)
            MyProfilePage(self.driver).changePassword('Password007$$')

最后改变密码方法

    def changePassword(self, new_password):
        self.driver.find_element_by_xpath(self._change_pw).click()

        password_fields = self.driver.find_elements_by_xpath(".//*[@class='form-group']/*/input")

        password_fields[1].send_keys(new_password)
        self.submit_button.click()

        #Changing password for the LoginPage object
        self._passwordChange(new_password)

    def _passwordChange(self, password):

        try:
            self.driver.find_element(by=By.XPATH, value = '//*[contains(text(), "Password successfully changed.")]')
            LoginPage.admin[1] = password

        except NoSuchElementException:
            pass

问题是它似乎没有改变实际的对象,即LoginPage.admin。这里的想法是每当我使用changePassword方法,如果我需要登录进行不同的测试,我不需要手动更新admin / basicuser的密码

1 个答案:

答案 0 :(得分:0)

我想要做的似乎是动态修改LoginPage.py中的一行代码,这对我的代码不起作用,可能需要一些高级知识。我决定将所有登录保存在单独的.txt文件中,以解决问题