Python Hot在另一个类方法中使用输出形式的一个类方法

问题描述 投票:0回答:1

我有类方法generated_username生成字符串并返回该字符串,我需要在另一个方法new_full_list中使用此输出,但我运行整个方法而不仅仅是它的输出这是我的代码:

class Users():

def generated_username(self, driver):
    username = driver.find_element_by_css_selector("[id=systemUser_employeeName_empName]").get_attribute('value')
    username = username.replace(' ', '').lower()
    username = username + ''.join(random.choice(string.digits) for i in range(3))
    return username

def new_full_list(self,driver):
    l = driver.find_elements_by_xpath("//*[@class='odd' or @class='even']/td[2]/a")
    l = [x.text for x in l]
    l.append(self.generated_username(driver))
python function selenium methods
1个回答
1
投票

如果我理解正确,你希望在特定页面上调用generated_username,并生成一个字符串。稍后,在另一个页面上,您希望在new_full_list中使用之前生成的字符串。

为此,您可以创建一个类变量来保存此字符串。

class Users():
    user_string = ""

然后,当在正确的页面上时(我不确定你的代码的其余部分是什么样的/你如何控制流程/何时调用函数),你可以调用generated_username(driver)。我们将修改generated_username以设置我们之前创建的类变量。

def generated_username(self, driver):
    ...
    <s>return username</s>
    this.user_string = username

当您稍后在另一个页面上调用new_full_list(driver)时,您希望它使用此先前的值。我们可以这样做:

def new_full_list(self,driver):
    l = driver.find_elements_by_xpath("//*[@class='odd' or @class='even']/td[2]/a")
    l = [x.text for x in l]
    l.append(self.user_string)

现在,你在generated_username中调用new_full_list,这意味着整个函数运行,包括find_element等。

© www.soinside.com 2019 - 2024. All rights reserved.