Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/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
Python—在类中传递函数的参数_Python_Firefox_Selenium_Selenium Webdriver - Fatal编程技术网

Python—在类中传递函数的参数

Python—在类中传递函数的参数,python,firefox,selenium,selenium-webdriver,Python,Firefox,Selenium,Selenium Webdriver,有没有人能帮我完成下面的代码 import time from selenium import webdriver from selenium.webdriver.common.keys import Keys # class DataddoMobileTestFirefox(): # def setUp_and_login(self, browser): ''' Supported

有没有人能帮我完成下面的代码

import time from selenium import webdriver from selenium.webdriver.common.keys import Keys # class DataddoMobileTestFirefox(): # def setUp_and_login(self, browser): ''' Supported browsers are: firefox; chrome ''' global driver global email global password global login_btn # if browser == firefox: driver = webdriver.Firefox() elif browser == chrome: driver = webdriver.Chrome('/Library/Chromedriver/chromedriver') else: print('Browser not recognized, exiting...') exit() # # # Execute the module if __name__ == '__main__': DataddoMobileTestFirefox().setUp_and_login(firefox) 执行模块时,我收到以下错误消息:

Traceback (most recent call last): File "DataddoMobileFirefox.py", line 26, in DataddoMobileTestFirefox().setUp_and_login(firefox) NameError: name 'firefox' is not defined 我相信我已经接近目标了,一些提示会对我有很大帮助 非常感谢。您的模块中没有定义firefox。我认为你期望它是一个变量

您可以改为使用字符串:

DataddoMobileTestFirefox().setUp_and_login('firefox')
然后在设置和登录方法中:

但可能最好在您的类的uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。考虑到您的类名为DataddoMobileTestFirefox,我们认为它只适用于Firefox,因此不需要通过将其传递给setUp_和_login来识别浏览器。只需在_uinit_;中创建驱动程序的实例:


现在,您可以从类中的其他方法访问驱动程序,而无需使用global。

为什么在类中使用global?如果你只使用一个方法,为什么还要使用一个类呢?你必须把firefox和chrome放在引号里,在if,elif和最后一行。好的,不要使用global,传入args,使用self.firefox=firefox等等。。在init方法中,然后在类和实例中使用self.firefox.firefox outside firefox应该是实例变量还是字符串firefox?您提供的代码中没有声明它。您的类名为DataddoMobileTestFirefox。我希望它只处理Firefox。为什么你还试图在该类中支持Chrome?
if browser == 'firefox':
    driver = webdriver.Firefox()
else browser == 'chrome':
    driver = webdriver.Chrome('/Library/Chromedriver/chromedriver')
from selenium import webdriver

class DataddoMobileTestFirefox():
    def __init__(self, driver):
        self.driver = webdriver.Firefox()

    def some_method(self):
        self.driver.do_something()