'使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法'

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

13)使用包含和屬性

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

13)使用包含和屬性

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

14)使用屬性,遵循兄弟姐妹和後代

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

13)使用包含和屬性

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

14)使用屬性,遵循兄弟姐妹和後代

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

15)使用屬性,遵循兄弟,後代和文本

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

13)使用包含和屬性

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

14)使用屬性,遵循兄弟姐妹和後代

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

15)使用屬性,遵循兄弟,後代和文本

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

16)使用標題和文本

如果web元素是包含某些特定文本的標題,則XPath可能如下所示:

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

13)使用包含和屬性

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

14)使用屬性,遵循兄弟姐妹和後代

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

15)使用屬性,遵循兄弟,後代和文本

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

16)使用標題和文本

如果web元素是包含某些特定文本的標題,則XPath可能如下所示:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

17)使用標題文本,兄弟姐妹,路徑等

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

13)使用包含和屬性

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

14)使用屬性,遵循兄弟姐妹和後代

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

15)使用屬性,遵循兄弟,後代和文本

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

16)使用標題和文本

如果web元素是包含某些特定文本的標題,則XPath可能如下所示:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

17)使用標題文本,兄弟姐妹,路徑等

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

18)使用屬性,包含和前置兄弟姐妹

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

13)使用包含和屬性

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

14)使用屬性,遵循兄弟姐妹和後代

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

15)使用屬性,遵循兄弟,後代和文本

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

16)使用標題和文本

如果web元素是包含某些特定文本的標題,則XPath可能如下所示:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

17)使用標題文本,兄弟姐妹,路徑等

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

18)使用屬性,包含和前置兄弟姐妹

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

19)通過使用Id屬性,一些特定文本和反向查找來查找下拉列表

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

13)使用包含和屬性

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

14)使用屬性,遵循兄弟姐妹和後代

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

15)使用屬性,遵循兄弟,後代和文本

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

16)使用標題和文本

如果web元素是包含某些特定文本的標題,則XPath可能如下所示:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

17)使用標題文本,兄弟姐妹,路徑等

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

18)使用屬性,包含和前置兄弟姐妹

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

19)通過使用Id屬性,一些特定文本和反向查找來查找下拉列表

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

20)組合"Id"屬性並查找具有特定文本的鏈接

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

13)使用包含和屬性

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

14)使用屬性,遵循兄弟姐妹和後代

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

15)使用屬性,遵循兄弟,後代和文本

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

16)使用標題和文本

如果web元素是包含某些特定文本的標題,則XPath可能如下所示:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

17)使用標題文本,兄弟姐妹,路徑等

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

18)使用屬性,包含和前置兄弟姐妹

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

19)通過使用Id屬性,一些特定文本和反向查找來查找下拉列表

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

20)組合"Id"屬性並查找具有特定文本的鏈接

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

結論

在編寫殺手級XPATH時,它實際上取決於您對代碼的理解和分析。您對代碼的理解越多,您在編寫有效XPATH時可以找到的方式就越多。

編寫XPath的第一步是找到與您的目標Web元素最接近的唯一Web元素,並使用上面討論的不同技術(如屬性,DIV,跟隨,包含等)保持接近。

最後,我們再次這樣說,如果您要求開發團隊在您感興趣的所有Web元素中添加唯一ID,那麼它將真正讓您的生活更輕鬆。

每當sprint週期或新需求開始工作並且團隊與新模型共享時,我總是會經歷所有模擬並考慮潛在的自動化測試案例,準備一份將使用的所有潛在Web元素的列表在自動化測試和準備我自己的ID。

一旦完成了所有Web元素的列表以及我建議的ID,我將事先將其分享給開發人員以用於開發代碼。通過這種方式,我可以通過簡化XPATH編寫戰鬥來獲得唯一的ID。

下面是編寫XPATH的不同方法的組合列表:

"//*[@id='rcTEST']//*[contains(text(), 'TEST Interactive')]/../button[2]"

"//*[@id='rcTEST']//*[contains(text(), 'TEST Interactive')]/..//*[contains(text(), 'Setting')]"

"//*[@id='rcTEST']//*[contains(text(), 'TEST Interactive')]/following-sibling::button"

"String actualFileName = WebDriverAccess.getDriver().findElement(By.xpath("//*"+fileName +"/tr/td[1]")).getAttribute("title");"

WebDriverAccess.getDriver().findElement(By.xpath("//*"+fileName +"/tr/td[4]")).click();

"// address[@class='ng-scope ng-isolate-scope']//div[contains(.,Testing') and @id='msgTitle']"

"//*[@name='myForm']//table[@id='tbl_ testdm']/tbody/tr/td[6]/

input[@value='Open RFS']"

"//*[@title='Songs List Applet']//table//td[contains(text(),'Author')]"

"//*[@id='parameters']//*[@id='testUpdateTime']")"

"//*[@id='MODEL/PLAN']/div[1]/div[2]/div[1]/div[1]/widget/section/div[1]/div/div[1]/div/div/button[1]"

"//*[contains(text(),'Watch Dial)]/../div/select[@data-ng-model='context.questions[subqts.subHandleSubId]']"),"

"//*[@id='RESEARCH/PLAN']//*[contains(@id, 'A4')]/../../following-sibling::div[1]/div[1]/span[1]/span[1]"

"//*[@id='ALARMDATA']//*[contains(@id, 'AFC2')]/../../preceding-sibling::div[1]/div[1]/span[1]/span[1]"

"//*[@id='RESEARCH/REVIEW']//widget/section/div[1]/div/div[2]/div[1]/div[3]/div[1]//span[@class='details']"

"//a[contains(.,'Parameter Data Manual Entry')]"

"//*[contains(@style,'display: block; top:')]//input[@name='daterangepicker_end']"

"//*[@id='dropdown-filter-serviceTools']/following-sibling::ul/descendant::a[text()='Notepad']"

"//*[@id='dropdown-filter-serviceTools']/following-sibling::ul/descendant::a[text()='Trigger Dashboard']"

"//h3[text()='Internal Debrief']"

"//h3[contains(text(),'Helium Level')]/following-sibling::div/label/input"

"//div[div[p[contains(text(),'Status')]]]/preceding-sibling::div/div/span[3]/span"

"//*[@id='COUPLING']//*[contains(text(),'COUPLE Trend')]/../div/select"

"//*[@id='ffaHeaderDropdown']//a[contains(text(),'Start Workflow')]"

請關注+私信回覆:“學習”就可以免費拿到軟件測試學習資料

"

使用於任何Web元素類型的XPATH定位的前20種方法(XPATH永遠不會無效):

Web應用程序由不同類型的Web元素組成,例如用於單擊按鈕Web元素,輸入以鍵入文本的Web元素,下拉列表,單選按鈕等。這些Web元素也稱為標記或節點。

在自動化Web應用程序時,首先要編寫一個自動化腳本,該腳本將找到Web元素,對其執行操作,例如,單擊按鈕,在輸入框中輸入文本,選擇複選框,選擇單選按鈕,向上或向下滾動,最後驗證操作的預期行為。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

找到一個元素就像在地圖上找到某人的房子一樣。我們在沒有任何外部幫助的情況下找到朋友家的唯一方法就是我們應該有一張地圖並知道要找什麼(房子)。

在我們的案例中,地圖就好像DOM(HTML標籤,JavaScript等),其中存在所有Web元素,以及我們想要查找的特定Web元素都在地圖裡,找到元素的唯一地址或路徑後,自動化腳本將根據測試場景對其執行某些操作。例如,您要驗證單擊按鈕後打開的頁面的URL地址是否正確。但是,找到Web元素的唯一地址/路徑並不能成功驗證,因為可能存在類似的標記,相同的屬性值,相同的路徑,因為很難為稱為"XPATH"的Web元素創建精確的唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在這裡,我們將深入探討一些非常有效的技術,為任何類型的Web元素生成有效且獨特的XPATH,有時您可以使用瀏覽器擴展輕鬆創建XPath,但在我的自動化測試職業生涯中,我遇到了無數傳統瀏覽器擴展無法工作的情況,您必須使用自己的創造力來提出自己的自定義XPath。我確信你已經或將面臨類似的情況。

下面我們將介紹如何為Web元素創建最終XPath的20種最佳方法,即使代碼更改後,XPath將始終保持有效(除非開發人員重寫整個特徵/模塊)。

通過了解所有這些技術,您將成為編寫自己的XPath的大師,並且能夠編寫殺手級XPath,幾乎沒有機會變得無效。

首先,讓我們首先理解XPath語法並定義其每個部分

XPath的外觀以及每個部分的描述

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

//:選擇當前節點,例如input,div等。

標記名:Web元素/節點的標記名

@:選擇屬性

屬性:節點/特定Web元素的屬性名稱

值:屬性的值

在這裡分享一些技巧,80%的時間我的自動化測試腳本因XPath而失敗。這是由於提供的XPath或XPath有多個Web元素無效或頁面尚未加載。

因此,只要您的測試用例失敗:

1、複製你的XPath。

2、在DOM中的瀏覽器(F12或開發人員工具窗口)中搜索它以驗證它是否有效(參見下圖)。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

專業提示1:確保路徑是唯一的,在DOM中搜索兩次時,不會出現其他網絡元素。

專業提示2:有時會出現計時問題,這意味著在腳本查找時您的網頁元素/頁面尚未加載,因此會增加一些等待時間並重新測試。

專業提示3:可以在搜索Web元素之前打印整個DOM,這樣,可以通過查看控制檯來判斷您的Web元素是否存在於DOM中。

在我們深入研究XPath之前,如果您可以直接訪問開發團隊,或者您的團隊位於您所在的位置,那麼請您的開發團隊為您提供唯一的ID每個web元素或至少是您要用於Automation的元素,這將節省您的大量時間。

如果這種可能性無法實現,那麼您可能需要使用您的創造力並提出自己的定製XPath,這就是我們現在要說的內容。

1)反向查找

假設你想點擊一個按鈕,就會有一個類似的按鈕。兩個按鈕都具有id屬性,但它們是動態的,並且兩個按鈕元素中的屬性都不是唯一的。

在下面的場景中,我們要點擊"Test Interactive"的"Setting"按鈕。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

代碼如下:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果查看"設置"按鈕,則兩個代碼都相似。通過使用傳統方式,例如id,name,value,contains等,它們都不會起作用。

// * [contains(text(),'Setting')],這將產生兩個web元素。因此它並不是唯一的。

所以這是最終戰略,

>>首先,找到最接近的唯一標籤,在這種情況下,它是<widget id ='rcTest'.........>

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>其次,找到最接近預期的Web元素的Web元素,在本例中包含(text(),'TEST Interactive')。現在我們在<DIV>中存在'Setting'按鈕但是要點擊它,我們首先需要使用雙點轉到主<DIV>,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

>>如您所見,我們處於<DIV>級別,其中第二個Web元素為"設置"按鈕。這個<DIV>有兩個按鈕,我們想要轉到第二個按鈕,即"設置"按鈕。通過在末尾添加'/ button [2]',我們可以為"設置"按鈕獲取我們獨特的XPATH,如下所示

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

最終XPATH:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

如果您認為他們可能會將Web元素類型從"按鈕"更改為其他內容,那麼這是另一種生成方式。

或使用"跟隨兄弟"

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

2)使用變量和自定義值

假設有一個Web應用程序具有上傳/下載文件的FTP("文件傳輸協議")功能,您可以通過單擊下載鏈接下載特定文件的測試用例。

首先,我們可以將我們要查找的文件名定義為變量。

現在使用XPATH我們可以找到實際的文件名

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在上面的XPath中,...'/ tr / td [1] .getAttribute("title")'將轉到特定的行和第一列,並獲取title屬性的值。我們可以將實際文件名存儲到另一個變量中。

一旦我們同時擁有預期文件名和實際文件名,我們就可以比較兩者,如果兩者都匹配,我們只需單擊其下載鏈接即可。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們還可以在每行中創建一個循環並繼續驗證文件名,直到找到它為止。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

3)使用"XML"標籤,"AND"等

我們可以使用自定義標籤生成唯一的XPATH並添加其他條件。

例如,假設我們的主要Web元素存在於主<address>標記中,並且有多個地址標記,但您只想查找特定的地址標記。所有地址標籤都有一個類屬性,因此我們可以從中開始。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們注意到我們的Web元素位於<DIV>標記中,其中包含一些名為"Testing"的文本。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

我們發現結果有多個web元素。因此,為了使它更獨特,我們可以添加其他條件,例如"id",它最終將我們指向我們正在尋找的web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

4)使用屬性和表XPATH

假設我們想要鍵入放置在表中的Web元素,並將表放在表單元素中。

我們可以在DOM中找到名為"myForm"的所有表單。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在在所有表單中找到id為'tbl_testdm'的表。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在表格中,轉到特定的行和列。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在單元格內,如果有多個輸入,則找到一個輸入,其中value ='Open RFS',這將為我們提供該字段的最終XPath。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

5)使用屬性,表和文本

假設您的Web元素位於Panel Table中,並且有一些常用文本。

首先從具有唯一屬性的面板開始,在這種情況下是'TITLE'。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

現在瀏覽所有表標籤。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

在所有表中找到包含文本"作者"的列。

最終的XPath將是:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

6)使用嵌套屬性生成XPATH

也可以使用嵌套屬性生成目標Web元素的XPath。例如,在這種情況下,它將在DOM中查找特定屬性,然後在其中查找另一個屬性。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

7)通過組合屬性,分區和按鈕生成XPath

例如,在下面的XPath中,我能夠通過使用id(相對XPath),一些div標籤和一個按鈕來找到目標web元素。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

8)XPATH使用CONTAINS,REVERSE LOOKUP等生成

一旦我有一個沒有直接識別的下拉菜單。我不得不使用CONTAINS,REVERSE,DIVs屬性來提出最終的XPATH,如下所示。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

9)使用Relative,CONTAINS,REVERSE,FOLLOWING SIBLING等生成XPath。

我遇到了應用程序顯示圖形的情況,每個圖形值都必須經過驗證。但是,遺憾的是,每個值都沒有任何唯一標識,因此我提出了最終的XPATH,如下圖所示,其中包含一個圖形值,它結合了相對,包含,反向,跟隨兄弟和div標記

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

10)使用Attributes,Contains,Reverse,Preceding-Sibling,Divs和Span生成XPath

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

11)使用屬性,XML標籤等。

在下面的XPATH,屬性和XML標記中,序列用於提供Web元素的最終唯一地址。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

12)通過不查看整個頁面而是查看所有鏈接幷包含而生成XPath

下面的XPath將僅查找整個頁面中包含"參數數據手動輸入"文本的鏈接。

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

13)使用包含和屬性

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

14)使用屬性,遵循兄弟姐妹和後代

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

15)使用屬性,遵循兄弟,後代和文本

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

16)使用標題和文本

如果web元素是包含某些特定文本的標題,則XPath可能如下所示:

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

17)使用標題文本,兄弟姐妹,路徑等

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

18)使用屬性,包含和前置兄弟姐妹

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

19)通過使用Id屬性,一些特定文本和反向查找來查找下拉列表

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

20)組合"Id"屬性並查找具有特定文本的鏈接

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

結論

在編寫殺手級XPATH時,它實際上取決於您對代碼的理解和分析。您對代碼的理解越多,您在編寫有效XPATH時可以找到的方式就越多。

編寫XPath的第一步是找到與您的目標Web元素最接近的唯一Web元素,並使用上面討論的不同技術(如屬性,DIV,跟隨,包含等)保持接近。

最後,我們再次這樣說,如果您要求開發團隊在您感興趣的所有Web元素中添加唯一ID,那麼它將真正讓您的生活更輕鬆。

每當sprint週期或新需求開始工作並且團隊與新模型共享時,我總是會經歷所有模擬並考慮潛在的自動化測試案例,準備一份將使用的所有潛在Web元素的列表在自動化測試和準備我自己的ID。

一旦完成了所有Web元素的列表以及我建議的ID,我將事先將其分享給開發人員以用於開發代碼。通過這種方式,我可以通過簡化XPATH編寫戰鬥來獲得唯一的ID。

下面是編寫XPATH的不同方法的組合列表:

"//*[@id='rcTEST']//*[contains(text(), 'TEST Interactive')]/../button[2]"

"//*[@id='rcTEST']//*[contains(text(), 'TEST Interactive')]/..//*[contains(text(), 'Setting')]"

"//*[@id='rcTEST']//*[contains(text(), 'TEST Interactive')]/following-sibling::button"

"String actualFileName = WebDriverAccess.getDriver().findElement(By.xpath("//*"+fileName +"/tr/td[1]")).getAttribute("title");"

WebDriverAccess.getDriver().findElement(By.xpath("//*"+fileName +"/tr/td[4]")).click();

"// address[@class='ng-scope ng-isolate-scope']//div[contains(.,Testing') and @id='msgTitle']"

"//*[@name='myForm']//table[@id='tbl_ testdm']/tbody/tr/td[6]/

input[@value='Open RFS']"

"//*[@title='Songs List Applet']//table//td[contains(text(),'Author')]"

"//*[@id='parameters']//*[@id='testUpdateTime']")"

"//*[@id='MODEL/PLAN']/div[1]/div[2]/div[1]/div[1]/widget/section/div[1]/div/div[1]/div/div/button[1]"

"//*[contains(text(),'Watch Dial)]/../div/select[@data-ng-model='context.questions[subqts.subHandleSubId]']"),"

"//*[@id='RESEARCH/PLAN']//*[contains(@id, 'A4')]/../../following-sibling::div[1]/div[1]/span[1]/span[1]"

"//*[@id='ALARMDATA']//*[contains(@id, 'AFC2')]/../../preceding-sibling::div[1]/div[1]/span[1]/span[1]"

"//*[@id='RESEARCH/REVIEW']//widget/section/div[1]/div/div[2]/div[1]/div[3]/div[1]//span[@class='details']"

"//a[contains(.,'Parameter Data Manual Entry')]"

"//*[contains(@style,'display: block; top:')]//input[@name='daterangepicker_end']"

"//*[@id='dropdown-filter-serviceTools']/following-sibling::ul/descendant::a[text()='Notepad']"

"//*[@id='dropdown-filter-serviceTools']/following-sibling::ul/descendant::a[text()='Trigger Dashboard']"

"//h3[text()='Internal Debrief']"

"//h3[contains(text(),'Helium Level')]/following-sibling::div/label/input"

"//div[div[p[contains(text(),'Status')]]]/preceding-sibling::div/div/span[3]/span"

"//*[@id='COUPLING']//*[contains(text(),'COUPLE Trend')]/../div/select"

"//*[@id='ffaHeaderDropdown']//a[contains(text(),'Start Workflow')]"

請關注+私信回覆:“學習”就可以免費拿到軟件測試學習資料

使用Xpath定位元素實例:為Web元素創建最終XPath的20種最佳方法

"