如何使用硒和python在sqlite3中进行查询

时间:2019-08-24 06:19:31

标签: python sqlite selenium

我正在构建测试博客网站的框架。我有一个到目前为止由两个表组成的Sqlite3数据库:“ post”和“ user”。我想验证一下,当新用户注册时,他的名字出现在“用户”表中。这是TDD框架。到目前为止,我有3个文件:位于data.json文件中的所有数据,位于setup.py文件和第3个文件中的所有方法均为test.py。当我运行测试时,它给我一个错误。我的问题是:在这种情况下我该如何查询

#setup.py

from   appium import webdriver
from   selenium import webdriver
from   selenium.webdriver.common.by import By
from   selenium.webdriver.common.keys import Keys
from   selenium.webdriver.support.ui import Select
from   selenium.common.exceptions import NoSuchElementException
from   selenium.common.exceptions import NoAlertPresentException
from   datetime import datetime
import time
import logging
import json
import sqlite3



#Loading DateTime Stamp into variable
now = datetime.now().strftime('%Y-%m-%d_%H-%M-%S')

#Initiating Logging
logging.basicConfig(filename='/path to testLog_%s.log' % now,
        level=logging.INFO, format='%(asctime)s:%(levelname)s:%(funcName)s:%(message)s:')

#Loading Data into variable
json_file = '/path to data.json'

#Opens json data file once to be used many times during one test case run
with open(json_file) as f:
    uiLocatorsAndTestData = json.load(f)

def load_value(key, elemVal):
    '''this function reads data from json file and return requested value'''
    value = (uiLocatorsAndTestData[key])
    for item in value:
        myValue = (item[elemVal])
    return myValue

class BrowserActions(object):

    #this function initialise class BrowserActions
    def __init__(self,driver=None):
        ''' Acts as a constructor for the class and
            when an object is instantiated, this function is called.
            Self represents the instantiating object. '''
        if driver != None:
            self.driver = driver

    def dataBase(self, locateTable ,tableName, locateItemInTable, chosenName):
        myTable = load_value(locateTable ,tableName)
        userName = load_value(locateItemInTable ,chosenName)
        try:
            conn = sqlite3.connect('/Users/a./Desktop/Automation_Work/ALL_Working_Frame_APPIUM/FLASK_WEB_SITE/app/site.db')
            self.c = conn.cursor()
            self.c.execute("SELECT * FROM",(myTable), "WHERE username=",(userName))
            results = self.c.fetchall()
            logging.info('\n')
            logging.info(results)
            conn.close()
            assert results == username
        except Exception as e:
            time.sleep(1)
            self.driver.save_screenshot('/Users/a./Desktop/Automation_Work/ALL_Working_Frame_APPIUM/paperless_frame/tests_output/screenshots/screenshot-%s.png' % now)
            logging.info('\n')
            logging.info(' DID NOT CHOOSE - - - "{}", value: "{}"'.format(myTable, userName))
            logging.info(e)

# test.py
from setup import BrowserActions
import time

class test_dataBase_Flask_website:

    action = BrowserActions(object)
    action.setupBrowser('chrome')
    action.webPage('WEB_PAGE_NAME', 'flask')

    action.click_element('FLASK_NAVIGATION','li_REGISTER_navigation_button')

    action.send_keys('FLASK_SEND_KEYS_FIND_ELEMENT','id_USERNAME_register_input','FLASK_SEND_KEYS_TYPE_VALUE','id_USERNAME_register_input')
    action.send_keys('FLASK_SEND_KEYS_FIND_ELEMENT','id_EMAIL_register_input','FLASK_SEND_KEYS_TYPE_VALUE','id_EMAIL_register_input')
    action.send_keys('FLASK_SEND_KEYS_FIND_ELEMENT','id_PASSWORD_register_input','FLASK_SEND_KEYS_TYPE_VALUE','id_PASSWORD_register_input')
    action.send_keys('FLASK_SEND_KEYS_FIND_ELEMENT','id_CONFIRM_PASSWORD_register_input','FLASK_SEND_KEYS_TYPE_VALUE','id_CONFIRM_PASSWORD_register_input')

    action.click_element('FLASK_NAVIGATION','id_SIGNUP_register_button')

    action.dataBase('FLASK_database_all_tables','id_user_table','FLASK_database_all_items','id_user_table_username_Petrov')
    action.tearDownBrowser()

test.py

从安装程序导入BrowserActions 导入时间

class test_dataBase_Flask_website:

action = BrowserActions(object)
action.setupBrowser('chrome')
action.webPage('WEB_PAGE_NAME', 'flask')

action.click_element('FLASK_NAVIGATION','li_REGISTER_navigation_button')

action.send_keys('FLASK_SEND_KEYS_FIND_ELEMENT','id_USERNAME_register_input','FLASK_SEND_KEYS_TYPE_VALUE','id_USERNAME_register_input')
action.send_keys('FLASK_SEND_KEYS_FIND_ELEMENT','id_EMAIL_register_input','FLASK_SEND_KEYS_TYPE_VALUE','id_EMAIL_register_input')
action.send_keys('FLASK_SEND_KEYS_FIND_ELEMENT','id_PASSWORD_register_input','FLASK_SEND_KEYS_TYPE_VALUE','id_PASSWORD_register_input')
action.send_keys('FLASK_SEND_KEYS_FIND_ELEMENT','id_CONFIRM_PASSWORD_register_input','FLASK_SEND_KEYS_TYPE_VALUE','id_CONFIRM_PASSWORD_register_input')

action.click_element('FLASK_NAVIGATION','id_SIGNUP_register_button')

action.dataBase('FLASK_database_all_tables','id_user_table','FLASK_database_all_items','id_user_table_username_Petrov')
action.tearDownBrowser()

日志文件显示了一个错误,例如: 2019-08-23 22:40:54,881:INFO:dataBase:'BrowserActions'对象没有属性'c'

0 个答案:

没有答案
相关问题