1

私には2つのクラスがあります。1つはインターネットを閲覧するためにセレンを使用し、もう1つはmysqlデータベースにデータを挿入します。

class DBConnection:
    def __init__(self, db_host=DB_HOST, db_port=DB_PORT, db_user=DB_USER, db_password=DB_PASSWORD, db_name=DB_NAME):
        self.host = DB_HOST
        self.port = DB_PORT
        self.name = DB_NAME
        self.user = DB_USER
        self.password = DB_PASSWORD
        self.conn = None
        self.cursor = None

class WebDriver:
    def __init__(self, download_folder=DOWNLOAD_FOLDER):
        self.driver = False

    def start_webdriver(self):
        """
        Initiate a Firefox profile for Selenium WebDriver.
        """
        fp = webdriver.FirefoxProfile()
        self.driver = webdriver.Firefox(firefox_profile=fp)

WebDriverクラスからdb接続を取得するための最良の方法は何でしょうか?このようなものは機能しますか?

class WebDriver:
    def __init__(self, download_folder=DOWNLOAD_FOLDER):
        self.driver = False
        self.download_folder = download_folder
        self.last_payment = None
        self.DBConnection = DBConnection()
        self.DBConnection.get_conn()
        self.DBConnection.get_cursor()
4

1 に答える 1

2

まず、DBConnection の初期化が間違っています。する必要があります

class DBConnection(object):
    def __init__(self, db_host=DB_HOST, db_port=DB_PORT, db_user=DB_USER, db_password=DB_PASSWORD, db_name=DB_NAME):
        self.host = db_host    # lower case!
        self.port = db_port
        self.name = db_name
        self.user = db_user
        self.password = db_password

次に、ユーザーが次のように設定を指定できるようにすることができます。

class WebDriver(object):
    def __init__(self, download_folder=DOWNLOAD_FOLDER, **kwargs):
        self.driver = False
        self.download_folder = download_folder
        self.last_payment = None
        self.DBConnection = DBConnection(**kwargs)
        self.DBConnection.get_conn()
        self.DBConnection.get_cursor()
于 2012-05-04T21:56:12.543 に答える