selenium基類封裝代碼

# -*- 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 -*-

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容