# -*- coding:UTF-8 -*-
from seleniumimport webdriver
import time
import xlrd
import csv
import xlwt
class Base(object):
# 新建對象就自動創(chuàng)建瀏覽器并且最大化窗口
? ? def __init__(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
# 打開網(wǎng)頁功能
? ? def open(self, url):
self.driver.get(url)
self.driver.implicitly_wait(10)
# 關閉網(wǎng)頁功能
? ? def close(self):
# time.sleep(3)
? ? ? ? self.driver.close()
# 定位元素功能
? ? def locate_element(self, type, value):
if type =="id":
el =self.driver.find_element_by_id(value)
elif type =="name":
el =self.driver.find_element_by_name(value)
elif type =="class_name":
el =self.driver.find_element_by_class_name(value)
elif type =="tag_name":
el =self.driver.find_element_by_tag_name(value)
elif type =="link_text":
el =self.driver.find_element_by_link_text(value)
elif type =="partial_link_text":
el =self.driver.find_element_by_partial_link_text(value)
elif type =="xpath":
el =self.driver.find_element_by_xpath(value)
elif type =="css_selector":
el =self.driver.find_element_by_css_selector(value)
return el
# 點擊元素功能
? ? def click(self, type, value):
# 調用locate_element定位元素
? ? ? ? el =self.locate_element(type, value)
# 調用click()進行點擊操作
? ? ? ? el.click()
# 對定位到元素進行輸入
? ? def input_value(self, type, value, data):
# 調用locate_element定位元素
? ? ? ? el =self.locate_element(type, value)
# 調用send_keys進行輸入
? ? ? ? el.send_keys(data)
# 獲取定位到的元素中的文本內容text
? ? def get_text(self, type, value):
# 調用locate_element定位元素
? ? ? ? el =self.locate_element(type, value)
# 返回文本內容
? ? ? ? return el.text
# 獲取定位到的元素中的標簽屬性值
? ? def get_attribute(self, type, value, name):
# 調用locate_element定位元素
? ? ? ? el =self.locate_element(type, value)
# 返回文本內容
? ? ? ? return el.get_attribute(name)
# 獲取當前url
? ? def get_current_url(self):
return self.driver.current_url
# 讀取excel
? ? def read_excel(self, filename, sheet_index):
xls = xlrd.open_workbook(filename)
sheet = xls.sheet_by_index(sheet_index)
print(sheet.nrows)
print(sheet.ncols)
data = []
fields = sheet.read_value(0)
for rin range(sheet.nrows):
dic = {}
for cin range(sheet.ncols):
dic[fields[c]] = sheet.read_value(r)[c]
data.append(dic)
return data
# # 讀取文本
? ? # def read_txt(self, filename):
? ? #? ? # self.open(filename,'w') ##可寫模式
? ? #? ? f = self.open(filename, 'r')? ##只讀模式
? ? #? ? str = f.read()? # 讀取所有,返回字符串格式
? ? #? ? # lis = f.readline() #讀取一行,返回字符串格式
? ? #? ? # lis = f.readlines() #讀取所有,返回列表
? ? #? ? return str
#
? ? # # 讀取csv文件,獲取每個單元格的內容
? ? # def read_csv(self, filename):
#? ? csvfile = filename
#? ? c = csv.reader(open(csvfile, 'r'))
#? ? for r in c:
#? ? ? ? for c in range(len(r)):
#? ? ? ? ? ? print(r[c])
# 如果是引用該類則不執(zhí)行該方法
if __name__ =="__main__":
test = Base()
url ="https://www.baidu.com"
? ? test.open(url)
test.input_data("id", "kw", "hiro")
test.click("id", "su")
# -*- author: szq -*-