ccs的優點:css相對xpath語法比xpath簡潔,定位速度比xpath快css的缺點:css不支持用邏輯運算符來定位,而xpath支持。css定位語法形式多樣,相對xpath比較難記。css定位建議多用,這個定位方式很強大,定位速度快且準確度高。至于難記,用熟了就好了,對勤快的人來說,這不是問題。CSS_selector常用符號:#表示id.表示class>表示子元素,層級1.通過id屬性定位:find_element_by_css_selector
系統 2019-09-27 17:49:19 1960
具體代碼如下所示:importsmtplib,email,os,timefromemail.mime.multipartimportMIMEMultipartfromemail.mime.textimportMIMETextfromemail.headerimportHeader#設置smtplib所需的參數smtpserver='smtp.qq.com'#SMTP服務器地址username='xxx@qq.com'#發件人地址,通過控制臺創建的發件人地址
系統 2019-09-27 17:49:18 1960
OS模塊基本操作提供對操作系統進行調用的接口importos#導入模塊os.getcwd()#獲取當前目錄(pwd)os.chdir("/Users")#切換到某個指定的目錄(cd/Users)os.curdir#返回當前目錄('.'、cd.)os.pardir#返回上級目錄('..'、cd..)os.makedirs('dirname1/dirname2')#遞歸創建目錄(mkdir-p)os.removedirs('dirname1/dirname2'
系統 2019-09-27 17:49:12 1960
python循環結構1.1使用whilePython中沒有do…while循環while…else在條件語句為false時執行else的語句塊:list=[1,2,3,4,5]i=0whilei
系統 2019-09-27 17:49:12 1960
我用了簡單工廠和建造者模式,與python的GUI配合實現了一個簡單的計算器系統,下面是運行結果,之后會向大家講解。類圖如下:部分代碼如下:builderModel.py建造者模式代碼classProduct():"""復雜產品類該類用于存放并返回兩個操作數Attributes:self.NumOne:第一個操作數self.NumTwo:第二個操作數"""def__init__(self,NumOne,NumTwo):self.__NumOne=NumOn
系統 2019-09-27 17:49:07 1960
前言Quora問答社區的一個開發者投票統計,程序員最大的難題是:如何命名(例如:給變量,類,函數等等),光是如何命名一項的選票幾乎是其它八項的投票結果的總和。如何給變量命名,如何讓它變得有意義成了程序員不可逾越的難題,這篇文章參考了CleanCode,提供7條命名建議,希望能在取名字的過程中給你帶來一些幫助。以下都是基于Python3.7語法1、使用有意義而且可讀的變量名差ymdstr=datetime.date.today().strftime("%y-
系統 2019-09-27 17:49:04 1960
前言Python生成器(generator)并不是一個晦澀難懂的概念。相比于MetaClass和Closure等概念,其較為容易理解和掌握。但相對于程序結構:順序、循環和分支而言其又不是特別的直觀。無論學習任何的東西,概念都是非常重要的。正確樹立并掌握一些基礎的概念是靈活和合理運用的前提,本文將以一種通俗易懂的方式介紹一下generator和yield表達式。1.Iterator與Iterable首先明白兩點:Iterator(迭代器)是可迭代對象;可迭代
系統 2019-09-27 17:48:41 1960
Python標準庫中functools庫中有很多對方法很有有操作的封裝,partialObjects就是其中之一,他是對方法參數默認值的修改。下面就看下簡單的應用測試。復制代碼代碼如下:#!/usr/bin/envpython#-*-coding:utf-8-*-#python2.7x#partial.py#authror:orangleliu'''functools中Partial可以用來改變一個方法默認參數1改變原有默認值參數的默認值2給原來沒有默認值
系統 2019-09-27 17:48:32 1960
Python迭代器與生成器實例詳解一、如何實現可迭代對象和迭代器對象1.由可迭代對象得到迭代器對象例如l就是可迭代對象,iter(l)是迭代器對象In[1]:l=[1,2,3,4]In[2]:l.__iter__Out[2]:In[3]:t=iter(l)In[4]:t.next()Out[4]:1In[5]:t.next()Out[5]:2In[6]:t.next()Out[6]:3In[7]:t.next()Out[7]:4In[8]:t.next()
系統 2019-09-27 17:48:18 1960
rpclib是一個非常好用的pythonwebservice庫,可以動態的生成wsdl,不過這個項目已經基本停止,并被一個新的項目取代spyne,由于舊的項目工作已經比較穩定,所以我沒有貿然升級到spyne。我在rpclib編寫service方法時,遇到一個奇怪的錯誤:訪問wsdl(http://localhost:9898/?wsdl)頁面,返回502BadGateway。在日志中看到如下錯誤信息:復制代碼代碼如下:ValueError:Allstrin
系統 2019-09-27 17:48:07 1960