Python+webdriver自動化腳本的封裝調用


Auto.py調用Respository.py中封裝好的方法:

Auto.py:

#!D:\Python3.7.2\python.exe
#-*-coding:utf-8-*-
from selenium import webdriver
import time
from Respository import Function
url = 'http://ics.chinasoftosg.com/SignOnServlet'
username = '159853'
password = 'Nancy2018?'
driver = webdriver.Chrome()
Function().F1(username,password,url,driver)
Function().F2(driver)

Respository.py:

import time
class Function():
    def F1(self,username,password,url,driver):
        driver.get(url)
        driver.maximize_window()
        driver.find_element_by_name('userName').send_keys(username)
        driver.find_element_by_id('password').click()
        driver.find_element_by_id('password').send_keys(password)
        driver.find_element_by_css_selector('.button').click()
    def F2(self,driver):
        driver.find_element_by_xpath("//div[@id='apDiv33']").click()
        time.sleep(3)
        handles = driver.window_handles
        driver.switch_to.window(handles[1])
        driver.find_element_by_xpath("//div[@class='l-accordion-content']/a[8]").click()
        time.sleep(5)
        driver.find_element_by_xpath("//div[@class='l-accordion-content']/a[6]").click()

Test.py調用Public.py封裝好的方法:

Test.py:

#-*-coding:utf-8-*-
from selenium import webdriver
import time
from Public import Loginzxw
driver = webdriver.Chrome()
Loginzxw().login(driver)
time.sleep(3)
driver.quit()

Public.py:

#-*-coding:utf-8-*-
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class Loginzxw():
    def login(self,browser):
        url = "https://www.*****.net"
        browser.get(url)
        browser.maximize_window()
        element = WebDriverWait(browser,10,0.5).until(EC.presence_of_element_located((By.LINK_TEXT, "登錄")))
        browser.find_element_by_link_text("登錄").click()
        browser.find_element_by_id('loginStr').send_keys("豬太肥001")
        browser.find_element_by_id('pwd').send_keys("Nancy2018")
        browser.find_element_by_xpath("//button[@type='submit']").click()

Python中定義方法時,self怎么理解?

   在定義方法的時候有一個self參數,在所有的方法聲明中都要用到這個參數,這個參數代表實例對象本身,當你用實例調用方法的時候,由解釋器自動的把實例對象本身悄悄的傳遞給方法,不需要你自己傳遞self進來,例如有一個帶有兩個參數的方法,你所有調用只需要傳遞進來兩個參數。

Python中有self和沒有self的問題?

定義方法的時候加了self,那么在調用這個類中的方法時就必需要實例化一個對象,即:類(對象).方法(參數) 
定義方法的時候沒有加self,那么調用這個類的方法時就可以直接調用方法,即:類().方法(參數)

類本身的局部變量(個人的認為定義在方法以外不以self開頭的變量是類本身的局部變量)是可以被直接掉用的,注意這里不是指上面所說的方法內的局部變量(這兩個命名空間不同)。如果方法中有有變量與類的局部變量同名,那么方法中的局部變量將會屏蔽類中的局部變量即類中的局部變量不再起作用
 


免責聲明!

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



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