在xpath路徑中添加變量參數


需求:需要從文件中讀取參數,然后添加到xpath中,根據傳入的參數執行相應的操作點擊,如下:

 

 

1、先試着使用固定的路徑運行一下,代碼如下:

這里的 xpath = '//*[@class="ant-select-dropdown-menu-item"][1]' , [1]代表點擊的是這個class下的第1號元素,即“母嬰用品”

可以執行成功,說明方法可行

 

2、下一步就是要把固定的參數[1]換成非固定參數,直接把[1]換一個值就可以了,list_li是從文件里讀取的當前傳入的數字,代碼如下:

執行失敗,提示定位不到這個元素

本次的 xpath =( '//*[@class="ant-select-dropdown-menu-item"][list_li]'  ),

仔細看了一下,[list_li]是在 '' 里面的,所以這個值好像是沒傳成功,python把它當一個字符串讀取了

 

3、再換一種方式,試着把[list_li]寫在字符串外面,代碼如下:

本次的 xpath =( '//*[@class="ant-select-dropdown-menu-item"]'[list_li]  ),

執行之后還是報錯,報錯提示 : xpath現在是一個html文檔類型,應該是一個元素類型。

雖然不明白什么意思吧,但肯定還是錯的,繼續改

 

4、試着把[list_li]寫在()外面,代碼如下:

本次的 xpath =( '//*[@class="ant-select-dropdown-menu-item"]')[list_li]  ,

報錯:這種對象不支持索引,也就是說Xpath對象不支持索引,,

 

5、上面的思路都是想着定位到這個css,然后再定位索引,上面的思路走不通,就換一種思路

  試着在xpath中直接新增參數,代碼如下

 本次的 xpath =('//*[@class="ant-select-dropdown-menu-item"][text = 1母嬰用品]'),

報錯:不是一個有效的xpath表達式

 

 6、實在不知道怎么辦的時候繼續百度,看到一個使用format把參數加進去的方法,試一下

還是以前的思路,將索引當做參數,但是這個參數不是直接放在里邊,是通過format添加進去的

本次的xpath:  list_xpath = '//*[@class="ant-select-dropdown-menu-item"][{}]'.format(list_li)

試着執行一下,成功了!!! 

 

總結:思路沒錯,就是使用的方法不對,直接把參數放進去不對,就使用別的方法添加進去,具體為什么這個可以我還沒有研究清楚

 


免責聲明!

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



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