1. 程式人生 > >Selenium2+Python3.6實戰(八):定位下拉菜單出錯,如何解決?用select或xpath定位。

Selenium2+Python3.6實戰(八):定位下拉菜單出錯,如何解決?用select或xpath定位。

排查 會有 有時 ide 導入 python3 很好 沒有 元素

在登錄界面,有時候會有幾種不同的角色,針對不同角色定位到的信息是不一樣的。查詢資料知道定位下拉框的元素有兩種方式:Xpath和select。

但是使用xpath定位時,user定位到了,登錄的時候卻是調用的administrator,很是費腦。幾經周折,終於解決了。

技術分享

1.關於user用戶xpath定位:用selenium IDE錄制了登錄過程,查看代碼才發現並沒有定位到user上,而是直接輸入密碼登錄的。這讓我想到,user是默認的用戶,當進入登錄界面時,網頁默認的用戶就是user,所以可以省略到定位這一步,但是這不是解決的根本方法。用IDE錄制過程後再查看代碼對比,可以用來作為以後排查問題的一種方式。

技術分享

2.采用select定位

在網上看到一些資料說xpath對下拉框定位並不是很好取的,比如當代碼裏變化了選項的順序,那麽又需要重新來寫腳本,這是很不穩定的。而我用了幾次select來定位,參考了網上的代碼,怎麽都不成功,每次都報錯。

才知道用select需要註意幾點:

1)先導入select模塊; 2)select只對<select>標簽下的內容才有效; 3)先定位到<select>標簽,再通過index、value或者選項的文字來確定選項。

下面是我跑成功的代碼:

技術分享

親測是沒有問題的,只要記住前面註意的3點就能成功了。

附上非<select>標簽下拉菜單定位方法:

技術分享

Selenium2+Python3.6實戰(八):定位下拉菜單出錯,如何解決?用select或xpath定位。