python-Csv combat

First, combat ready

  Created under the project file test.csv file, you can not directly create here, now need to create test.xlsx file, you can not directly modify the suffix, to save as test.csv, practice document reads as follows:

       

   Read csv file content to achieve the following:

import csv
import os

def readCsv(row,col):
    rows = []
    with open(os.path.join(os.path.dirname(__file__),'test.csv')) as f:
        reader = csv.reader(f)
        next(reader,None)
        for iter in reader:
            rows.append(iter)
    return ''.join(rows[row][col])
print(readCsv(1,2))
#打印出来是:请输入邮箱名

  The above code, the read first content file in the list of rows, ". Join (rows [row] [col])" list the row is converted into a string.

Second, the implementation code

  Sina login, for example, implement the code data stored test to csv file, to achieve the following:

__author__ = "XXX"

import unittest
from selenium import webdriver
import os
import time as t
import csv

def readCsv(row,col):
    rows = []
    with open(os.path.join(os.path.dirname(__file__),'test.csv')) as f:
        reader = csv.reader(f)
        next(reader,None)
        for iter in reader:
            rows.append(iter)
    return ''.join(rows[row][col])

class SinaLogin(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.get('http://mail.sina.com.cn/')
        self.driver.implicitly_wait(30)

    the tearDown DEF (Self): 
        t.sleep (. 3) 
        self.driver.quit () 

    DEF Login (Self, username, password): 
        '' 'verification: Test Sina mailbox where log N' '' 
        self.driver.find_element_by_id ( 'freename') send_keys (username). 
        self.driver.find_element_by_id ( 'freepassword') send_keys (password). 
        self.driver.find_element_by_link_text (U 'login') .click () 

    DEF divText (Self): 
        divText = self.driver .find_element_by_xpath ( '/ HTML / body / div [. 1] / div / div [2] /' 
                                                    'div / div / div [. 4] / div [. 1] / div [. 1] / div [. 1] / span [. 1 ] ') 
        # in freeError-span [1], the situation is changed according to the situation the input 
        return (divText.text) .encode (' utf -8 ')

    test_username_password_null DEF (Self): 
        '' 'Validation: test user name and password are empty error message' '' 
        # are empty: Please enter the mailbox name 
        self.login (readCsv (0,0), readCsv (0 , 1)) 
        self.assertTrue (self.divText (), readCsv (0,2)) 

    DEF test_sina_password_null (Self): 
        '' 'validation: test user to a blank password is not empty error message' '' 
        # username : empty, password: admin, Tip: enter the mailbox name 
        self.login (readCsv (1,0), readCsv (1, 1)) 
        self.assertTrue (self.divText (), readCsv (1, 2)) 

    DEF test_sina_username_format (Self): 
        '' 'validation: test user mailbox format incorrect error message' '' 
        # username: [email protected], password: empty Note: Please enter the password 
        self.login (readCsv (2,0 ), readCsv (2,1)) 
        self.assertTrue (self.divText (),readCsv(2,2))

if __name__ == '__main__':
    unittest.main(verbosity=2)

  The effect slightly.

 

Thank you for viewing!

2019-11-30

Guess you like

Origin www.cnblogs.com/yuntimer/p/11963945.html