selenium之簡單操作的封裝(瀏覽器、定位方式、點擊輸入等)


1、為避免代碼冗余,把selenium的部分操作簡單的封裝起來,封裝起來后,一些需要幾步才能完成的動作只需要一步即可

  瀏覽器的開啟關閉封裝

  訪問地址(訪問后默認隱式等待)封裝

  定位方式的封裝

  單擊操作封裝

  輸入框輸入封裝

  獲取指定元素的文本內容封裝

from selenium import webdriver
import time
# 定義一個封裝selenium 的各種方法的類(方便以面向對象的方式寫腳本)
class My_se_package(object):
    # 構造方法
    def __init__(self,brower):
        '''初始化瀏覽器對象'''
        # 根據傳入的參數創建對應的瀏覽器對象(相關瀏覽器已正確安裝驅動)
        if brower == 'Firefox':
            # 創建瀏覽器
            self.driver = webdriver.Firefox()
        elif brower == 'Chrome':
            self.driver = webdriver.Chrome()
         # 默認最大化
        self.driver.maximize_window()

    # 訪問地址
    def open_url(self,url):
        # 訪問url
        self.driver.get(url)
        # 默認隱式等待10
        self.driver.implicitly_wait(10)

    # 封裝八種定位方式
    def element_location(self,locate_type,locate_value):
        el = None
        if locate_type == 'id':
            el = self.driver.find_element_by_id(locate_value)
        elif locate_type == 'name':
            el = self.driver.find_element_by_name(locate_value)
        elif locate_type == 'class_name':
            el = self.driver.find_element_by_class_name(locate_value)
        elif locate_type == 'tag_name':
            el = self.driver.find_element_by_tag_name(locate_value)
        elif locate_type == 'link_text':
            el = self.driver.find_element_by_link_text(locate_value)
        elif locate_type == 'partial_link_text':
            el = self.driver.find_element_by_partial_link_text(locate_value)
        elif locate_type == 'xpath':
            el = self.driver.find_element_by_xpath(locate_value)
        elif locate_type == 'css':
            el = self.driver.find_element_by_css_selector(locate_value)
        # 如果el不為None,則返回
        if el is not None:
            return el

    # 指定某一個元素進行點擊操作
    def click_element(self,locate_type,locate_value):
        # 調用定位方法,定位指定的元素
        el = self.element_location(locate_type,locate_value)
        # 點擊操作
        el.click()
        time.sleep(1)

    # 指定元素進行輸入
    def input_element(self,locate_type,locate_value,input_value):
        # 調用定位方法,指定元素進行定位
        el = self.element_location(locate_type,locate_value)
        # 輸入操作
        el.send_keys(input_value)
        time.sleep(1)

    # 獲取指定元素的文本內容
    def text_element(self,locate_type,locate_value):
        # 調用定位方法定位指定元素
        el = self.element_location(locate_type,locate_value)
        # 獲取文本內容
        return el.text

    # 關閉本腳本打開的窗口
    def close_brower(self):
        # 關閉所有本腳本打開的窗口
        self.driver.quit()

    # 結束時自動清理所有變量,關閉所有窗口
    def __del__(self):
        # 關閉瀏覽器
        time.sleep(2)
        self.driver.quit()

if __name__ == '__main__':
    b = My_se_package('Firefox')
    b.open_url('http://www.baidu.com')
    # b.open_url('https://www.jd.com/')
    b.input_element('id','kw','英雄')
    b.click_element('id','su')
    b.driver.back()
    print(b.text_element('css','li.hotsearch-item:nth-child(2) > a:nth-child(1) > span:nth-child(2)'))
    print(b.driver.get_window_size())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM