導航:首頁 > 編程語言 > python查找元素封裝

python查找元素封裝

發布時間:2022-05-13 14:32:34

1. python 獲取列表元素有幾種方式,常見的是哪種

Python中列表常見的方法有哪些?
Python列表定義:按特定順序排列的元素組成。在Python中,用方括弧[]來表示列表,並用逗號來分隔其中的元素。Python列表是編程中很常見的數據類型 。

列表是一種可修改的集合類型,其元素可以是數字、string等基本類型,也可以是列表、元組、字典等集合對象,甚至可以是自定義的類型。其定義方式如下:>>> nums = [1,2,3,4]>>> type(nums)>>> print nums[1, 2, 3, 4]>>> strs = ["hello","world"]>>> print strs['hello', 'world']>>> lst = [1,"hello",False,nums,strs]>>> type(lst)>>> print lst[1, 'hello', False, [1, 2, 3, 4], ['hello', 'world']]

下面我們來看一下列表中有哪些常見的方法:count():統計某個元素在列表中出現的次數。index():從列表中找出某個值第一個匹配項的索引位置。append():在列表末尾添加新對象。extend():在列表末尾一次性追加另一個序列的多個值。insert():在列表的指定位置插入對象。pop():移除列表中的一個元素(默認最後一個元素),並且返回該元素的值。remove():移除列表中某個值的第一個匹配項。reverse():將列表中的元素反向,不重新拷貝一個列表。reversed():將列表中的元素反向,重新拷貝一個列表。sort():將列表中的元素排序,不重新拷貝一個列表。sortd():將列表中的元素排序,重新拷貝一個列表。():淺拷貝,只是給原來的列表貼上了一個新標簽,對於一個復雜對象的子對象並不會完全復制,如果有子列表,改變原來的值,新的拷貝對象也會改變。deep():深拷貝,將復雜對象的每一層復制一個單獨的個體出來。就是完全拷貝。常見內置函數:max()、min()、sum()、len()、all()、any()、zip()、enumerate()由於文章篇幅有限,具體的代碼,推薦大家看這篇文章:https://www.jianshu.com/p/da6e449f4c6a

2. Python中的封裝有什麼作用

日常生活中可以看到很多的汽車,汽車包括車輪、發動機、車架等零部件。可以在車架上安裝車輪,然後安裝發動機,最後安裝其他零件,刷漆。就形成了汽車。這個過程,是把各種零件放到車架上的過程。但思考一下,對於開車的人,需要關注車的內部結構嗎?答案顯然是否定的。汽車對外提供了方向盤、油門等去調用內部結構從而進行行駛。由這個例子可以總結出,汽車就是各種零件經過封裝得到的產物,同時提供給駕駛人操控汽車需要的介面設備。這就是生活中的封裝。

我們可以看到生活中的封裝有很多好處。具體有如下的幾條好處:

①隱藏了實現細節,在使用時沒必要關注具體實現。

②安全性好,內部細節隱藏了,就不能隨意破壞。

③對外提供介面方便使用。

④可維護性好,方便修改實現,修改完成後,對外介面不變,對用戶使用無影響。

⑤方便重用,任何一個會開車的人都可以駕駛汽車,只要對外的介面相同就行了。

總之,封裝就是將抽象得到的屬性和方法形成「類」,並將類內部信息進行隱藏,對外公開介面的機制。封裝限制從類外訪問,從而提升代碼安全性和可維護性。

封裝的內涵是把抽象得到的屬性和方法進行了封裝,對於方法,隱藏了具體的實現,提供了方法名供使用者調用。對於成員變數也進行隱藏,通過方法對外提供訪問介面。通過封裝,限制了直接訪問成員變數,通過方法,增加驗證邏輯,提高了安全性和可維護性。

封裝的外延是按照內聚性、一致性、封裝性、清晰性、完整性進行類的封裝。

內聚性就是類應該描述一個單一的實體。例如,學生姓名和教師所帶班級不是單一實體的屬性,不能組合在一個類中。

一致性就是類、成員變數、方法名要有意義,並且順序是成員變數、構造方法、普通方法。

封裝性就是類中成員變數是私有屬性,通過getter/setter訪問。

清晰性是指類的結構應該是易於解釋和理解的。

完整性是需要充分考慮多種不同用戶設計,應該能通過屬性和方法提供多種方案以適應用戶不同需求。例如,字元串中有很多方法,同時這些方法可以組合完成各種任務。

關於Python的基礎問題可以看下這個網頁的視頻教程,網頁鏈接,希望我的回答能幫到你。

3. python封裝調用問題,求解,一直顯示找不到元素

python封裝調用問題,求解,一直顯示找不到元素?
他日相逢與

4. python怎麼定位富文框textarea的元素我用xpath定位包找不到元素

selenium,一個有效的自動化測試工具,我主要介紹下關於如何封裝WebDriver,為一個比較輕松上手的自動化測試埋下鋪墊
工具/原料

selenium-server-standalone-2.39.0.jar軟體包
方法/步驟

先了解下什麼是WebDriver
熟悉WebDriver的關於java的一些API的使用
介紹一個火狐的插件firepath
我做的自動化測試是在火狐上運行的,因為我找到一個對於自動化測試比較有幫助的插件,那就是firepath,具體用法,就是先安裝該插件,它會在firebug那麼調試的窗口最右邊出現。firepath截圖和firepath安裝後的截圖如下所示。(優點:點哪個元素,哪個元素的xpath路徑立馬顯示,看圖吧)

自己封裝的WebDriver的API方法
package com.qiang.data;

import java.util.Iterator;
import java.util.List;
import java.util.Set;

import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

/**
* WebDriver幫助類
*/
public class WebDriverUtil {

/**
* 寫在前面的話:
* 我寫的這個WebDriver幫助類法僅僅針對於xpath訪問的
* 為什麼這么寫呢?有兩點理由
* 其一:xpath獲取方便,我用的是firefox瀏覽器,只要用firepath這個插件,我們就可以正確的定位到每一個節點,並且firepath支持查詢功能,值得大家使用
* 其二:使用統一的xpath,給編碼帶來了一定的規范
*/
/**
* 沒有驗證碼的的登錄
* @param wd WebDriver對象
* @param unameXpath 用戶名的xpath路徑
* @param uname 用戶名
* @param pwdXpath 密碼xpath路徑
* @param pwdValue 密碼
* @param loginBtnXpath 登錄按鈕xpath
*/
public static void login(WebDriver wd,String url,String unameXpath,String uname,String pwdXpath,String pwd,String loginBtnXpath){
wd.get(url);
inputs(wd,unameXpath,uname);
inputs(wd,pwdXpath, pwd);
click(wd,loginBtnXpath);
}
/**
* 登錄可能放在一個frame里了:我是因為遇到過,所以才加了個方法的
* @param wd WebDriver對象
* @param unameXpath 用戶名的xpath路徑
* @param uname 用戶名
* @param pwdXpath 密碼xpath路徑
* @param pwdValue 密碼
* @param loginBtnXpath 登錄按鈕xpath
* @param frame 第幾個框架
*/
public static void loginFrame(WebDriver wd,String url,String unameXpath,String uname,String pwdXpath,String pwd,String loginBtnXpath,int frame){
wd.get(url);
wd.switchTo().frame(frame);
inputs(wd,unameXpath,uname);
inputs(wd,pwdXpath, pwd);
click(wd,loginBtnXpath);
}

/**
* 有驗證碼的登錄
* @param wd WebDriver對象
* @param unameXpath 用戶名的xpath路徑
* @param uname 用戶名
* @param pwdXpath 密碼xpath路徑
* @param pwdValue 密碼
* @param loginBtnXpath 登錄按鈕xpath
* @param seconds 輸入驗證碼的間隔
*/
public static void loginVerify(WebDriver wd,String url,String unameXpath,String uname,String pwdXpath,String pwd,String loginBtnXpath,int seconds){
wd.get(url);
inputs(wd,unameXpath,uname);
inputs(wd,pwdXpath, pwd);
try {
Thread.sleep(seconds*1000); //這段時間內請輸入驗證碼
} catch (InterruptedException e) {
e.printStackTrace();
}
click(wd,loginBtnXpath);
}

/**
* 獲取頁面單個元素
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
* @return
*/
public static WebElement getElement(WebDriver wd,String xpath){
return wd.findElement(By.xpath(xpath));
}
/**
* 獲取頁面的一組元素
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
* @return
*/
public static List<WebElement> getElements(WebDriver wd,String xpath){
return wd.findElements(By.xpath(xpath));
}

/**
* 獲取元素節點的文本值
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
* @return
*/
public static String getText(WebDriver wd,String xpath){
return wd.findElement(By.xpath(xpath)).getText();
}
/**
* 獲取元素節點的文本值
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
* @return 沒有找到該元素時會有個提示,並且不會報錯,建議使用
*/
public static String getExistText(WebDriver wd,String xpath){
if(isExist(wd, xpath)){
return getText(wd, xpath);
}
return "-1";
}

/**
* 獲取元素節點的屬性值
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
* @attribute 要獲取目標節點的哪個屬性
* @return
*/
public static String getAttribute(WebDriver wd,String xpath,String attribute){
return wd.findElement(By.xpath(xpath)).getAttribute(attribute);
}
/**
* 點擊節點
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
* @return
*/
public static void click(WebDriver wd,String xpath){
wd.findElement(By.xpath(xpath)).click();
}
/**
* 輸入文本
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
* @return
*/
public static void inputs(WebDriver wd,String xpath,String value){
wd.findElement(By.xpath(xpath)).sendKeys(value);
}
/**
* 判斷是否選中
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
* @return
*/
public static boolean isChecked(WebDriver wd,String xpath){
return wd.findElement(By.xpath(xpath)).isSelected();
}
/**
* 判斷是否可用
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
* @return
*/
public static boolean isEnabled(WebDriver wd,String xpath){
return wd.findElement(By.xpath(xpath)).isEnabled();
}

/**
* 判斷是否存在元素
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
* @return
*/
public static boolean isExist(WebDriver wd,String xpath){
try{
wd.findElement(By.xpath(xpath));
return true;
}catch (NoSuchElementException e) {
return false;
}
}

/**
* 選中復選框,其實和點擊一樣,只是重新起了個名字
* @param wd WebDriver對象
* @param xpath 目標節點的xpath
*/
public static void check(WebDriver wd,String xpath){
click(wd, xpath);
}
/**
* 點擊那種隱藏的下拉框
* @param wd WebDriver對象
* @param xpath1 事件源節點的xpath
* @param xpath2 目標節點的xpath
*/
public static void clickHidden(WebDriver wd,String xpath1,String xpath2){
click(wd, xpath1);
click(wd, xpath2);
}
/**
* 獲取隱藏的文本,原理同上
* @param wd WebDriver對象
* @param xpath1 事件源節點的xpath
* @param xpath2 目標節點的xpath
*/
public static void getHiddenText(WebDriver wd,String xpath1,String xpath2){
click(wd, xpath1);
getText(wd, xpath2);
}
/**
* 獲取隱藏節點的屬性值
* @param wd WebDriver對象
* @param xpath1 事件源節點的xpath
* @param xpath2 目標節點的xpath
* @param attribute 要獲取目標節點的哪個屬性
*/
public static String getHiddenAttribute(WebDriver wd,String xpath1,String xpath2,String attribute){
click(wd, xpath1);
return getAttribute(wd, xpath2, attribute);
}
/**
* 切換窗口
* @param wd WebDriver對象
* @param title 要切換窗口的標題
*/
public static void changeWindow(WebDriver wd,String title){
String current = wd.getWindowHandle();
Set<String> all = wd.getWindowHandles();
Iterator<String> iterator = all.iterator();
while (iterator.hasNext()) {
String handle = iterator.next();
if(handle.equals(current)){
continue;
}
else{
wd.switchTo().window(handle);
if(wd.getTitle().contains(title)){
System.out.println("窗口成功跳轉");
break;
}
else{
continue;
}
}
}
}
}

5
個人小結
以上基於WebDriver簡單的封裝在一定程度上可以減少代碼量,封裝得太少,看到的你根據自己的需要進行擴充吧,我個人特點是喜歡封裝一切可以復用的代碼,以便達到高效率的編碼,並不是說會編碼就夠了,多總結總結還是會讓自己的編碼路不會走的那麼崎嶇些

5. python 查找對應元素

這個實現方法有很多,要看你的具體情況。比如用xlrd進行讀取,就可以按邏輯進行對比。

6. python中什麼是封裝

python中封裝指的是把一些功能性的語句封裝成一個函數供外面調用

7. selenium python怎麼封裝方法

一、常用函數的封裝

在使用selenium做web自動化測試的過程中,經常會碰到各種各樣的問題,比如:

1、頁面載入比較慢時,selenium查找元素拋出異常,導致腳本運行中止

2、寫完腳本後發現代碼邏輯不夠清晰,維護困難,降低測試效率

所以很有必要對selenium進行封裝使框架更適合公司的需求,下面是基類的封裝,主要使用單例模式,可以將業務邏輯代碼存放在不同的Python文件中

註:BASE_URL為博客園的登錄地址

四、其他

按照此模式博友可根據公司具體的業務來實現自動化測試腳本,本文拋磚引玉,如有其他更好的想法可以一起探討

8. 怎麼查找python列表中元素的位置

Python中查找list中某個固定元素是常有的事,對於兩種不同的查找有兩種不同的解決方案,見下。

查找元素首次出現的位置:

(8)python查找元素封裝擴展閱讀:

序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。

Python有6個序列的內置類型,但最常見的是列表和元組。序列都可以進行的操作包括索引,切片,加,乘,檢查成員。

此外,Python已經內置確定序列的長度以及確定最大和最小的元素的方法。列表是最常用的Python數據類型,它可以作為一個方括弧內的逗號分隔值出現。列表的數據項不需要具有相同的類型。

9. 如何在python列表中查找某個元素的索引

1、方法一: 利用數組自身的特性 a.index(target), 其中a是目標list,target是需要的下標對應的值。代碼如下:

2、分片:

分片用於截取某個范圍內的元素,通過:來指定起始區間(左閉右開區間,包含左側索引值對應的元素,但不包含右測索引值對應的元素)。

分片包括起始索引對應的元素,但不包括終止索引對應的元素,索引為正值時可以發生越界但只會取到最後一個元素。如果索引值為負值,則表示從最右邊元素開始,此時需避免索引越界。

10. python資料庫查詢怎麼封裝

1、安裝MySQL-python-1.2.3.win-amd64-py2.7.exe,這是操作mysql資料庫的python庫,有32位和64位之分,看自機器下載
2、64位機器安裝MySQL-python-1.2.3.win-amd64-py2.7.exe出現 which was not found the regidtry

閱讀全文

與python查找元素封裝相關的資料

熱點內容
編程思想pdf 瀏覽:282
加密歐美航線 瀏覽:48
svn怎麼看伺服器的地址 瀏覽:187
騎馬與砍殺1命令部隊用盾牌 瀏覽:595
光纜pdf 瀏覽:350
加密流量實時監測 瀏覽:628
360壓縮和好壓哪個好 瀏覽:61
python判斷變數是否為list 瀏覽:906
雲伺服器1m帶寬表示什麼意思 瀏覽:702
429升冷櫃用多大壓縮機 瀏覽:116
決策樹演算法java實現 瀏覽:376
androidtv開發焦點控制 瀏覽:328
論人的成長pdf 瀏覽:282
python網站源代碼 瀏覽:827
手機文件壓縮器怎麼安裝 瀏覽:112
androidsdk封裝 瀏覽:266
微信加密不知道怎麼取消 瀏覽:705
分析演算法設計程序編寫 瀏覽:843
linux啟動dhcp失敗 瀏覽:356
芙蓉出水選股公式源碼 瀏覽:763