五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

selenium中元素定位正確但是操作失敗,6種解決辦法全搞定

2023-09-05 20:15 作者:華測教育  | 我要投稿

selenium中元素定位正確但是操作失敗的原因無外乎以下4種:

一、頁面沒加載好

解決方法:添加等待方法,如: time.sleep()

二、頁面提交需要等待給數(shù)據(jù)后臺

解決方法:添加等待方法,如: time.sleep()

三、瀏覽器沒有以最大化方式打開,導(dǎo)致元素被隱藏,定位不到

解決方法:

將網(wǎng)頁最大化:driver.maximize_window()

如果屏幕比例固定,分辨率有限,通過網(wǎng)頁最大化也沒辦法解決的話,可以通過執(zhí)行JS方法來實現(xiàn)。

browser.execute_script(‘window.scrollBy(200,0)’) #此處(200,0)為網(wǎng)頁偏移坐標(biāo),200為橫坐標(biāo),0為縱坐標(biāo)

#window.scrollBy()為JS方法#

四、網(wǎng)頁中存在多個frame框架,所定位的元素不在當(dāng)前frame中。所以盡管元素明明看起來是定位正確的,但是點擊無效。

frame框架作用:frame對象代表一個HTML框架,frame就是一個子窗口,在里面可以加載網(wǎng)頁,內(nèi)部子窗口進(jìn)行刷新的時候,不會影響外部窗口。

對于嵌套多個frame的頁面,操作時需要層層跳轉(zhuǎn),跳到元素所在的frame。

frame標(biāo)簽有frameset、frame、iframe三種,frameset與其他普通標(biāo)簽一樣,不會影響元素的定位;而frame與iframe的切換方法是一樣的。

frame 下是個獨立的HTML文件:

解決方法:可以利用selenium中的switch_to.frame()方法來實現(xiàn)frame之間的跳轉(zhuǎn)。

具體操作如下:

1.如何對frame進(jìn)行切換?

利用switch_to.frame()方法來進(jìn)行切換。

reference是傳入的參數(shù),用來定位frame,可以是id,name,tag name等。假設(shè)有下面HTML代碼:

則想要切換到上述iframe的方法有:

driver.switch_to.frame(0)? #用frame的index定位,第一個是0

driver.switch_to.frame("frame1")? #用frame的id來定位

driver.switch_to.frame("myframe") #用name來定位

driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))? #用iframe對應(yīng)的tag name來定位

driver.switch_to_frame(driver.find_element_by_xpath("//iframe[contains(@src,'myframe')]"))? #利用xpath來定位

2.如何從子frame切換回主文檔?

切換到子frame后就無法再對主文檔元素進(jìn)行操作了,所以要切換回主文檔。方法為:

driver.switch_to.default_content()

driver.switch_to.default_content()

3.多層frame如何切換?

如果有多層frame要逐層進(jìn)行切換,例如下列多個frame嵌套的HTML代碼:

(1)從主文檔切換到frame 2:

driver.switch_to.frame(‘frame1’) #先從主文檔切換到frame1

driver.switch_to.frame(‘frame2’) #再從frame1切換到frame2

(2)從frame2切回到frame1:

從frame2再切回frame1,這里selenium給我們提供了一個方法能夠從子frame切回到父frame,而不用我們切回主文檔再切進(jìn)來。

有了parent_frame()這個相當(dāng)于后退的方法,我們可以隨意切換不同的frame,隨意的跳來跳去了。

總結(jié)下,遇到frame跳轉(zhuǎn)問題,利用以下三個方法便可以搞定:

五、元素屬性為動態(tài)屬性,看著定位已經(jīng)正確,但是隨著鼠標(biāo)點擊位置不同,元素的屬性發(fā)生變化。

例如下面這個頁面的目錄的class屬性就隨著該元素是否被點擊而發(fā)生變化:

解決方法:換元素的另一個固定屬性來進(jìn)行定位。

六、頁面元素在頁面打開的時候被其他彈出窗口擋住。

解決方法:添加關(guān)閉彈出窗口步驟。

最后:這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!

包括,測試人技術(shù)進(jìn)階路徑圖,50多天的視頻教程、16個項目實例,30多個測試工具,37份測試文檔,70個軟件測試相關(guān)問題,40篇測試經(jīng)驗級文章分享,還有軟件測試面試小程序,求職簡歷的優(yōu)化模板。

加油吧,如果你需要提升技術(shù)儲備,那就行動,在路上總比在起點觀望的要好。一切的迷茫都是因為想得太多而做的太少!

你可以在公眾號:傷心的辣條?! 自行領(lǐng)取一份216頁軟件測試工程師面試寶典文檔資料【免費的】。以及相對應(yīng)的視頻學(xué)習(xí)教程免費分享!,其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。

現(xiàn)在我邀請你進(jìn)入我們的軟件測試學(xué)習(xí)交流群:【746506216】,備注“入群”, 大家可以一起探討交流軟件測試,共同學(xué)習(xí)軟件測試技術(shù)、面試等軟件測試方方面面,還會有免費直播課,收獲更多測試技巧,我們一起進(jìn)階Python自動化測試/測試開發(fā),走向高薪之路。



selenium中元素定位正確但是操作失敗,6種解決辦法全搞定的評論 (共 條)

分享到微博請遵守國家法律
华阴市| 乌鲁木齐县| 波密县| 玉林市| 顺昌县| 南靖县| 巨野县| 丰县| 绥宁县| 江油市| 永嘉县| 大关县| 灵宝市| 宣化县| 陵水| 鄄城县| 县级市| 林口县| 阿鲁科尔沁旗| 南靖县| 色达县| 天柱县| 吐鲁番市| 汝阳县| 牟定县| 响水县| 垫江县| 文安县| 高雄县| 界首市| 白水县| 泽州县| 苍溪县| SHOW| 大名县| 仪征市| 西安市| 离岛区| 长阳| 秦皇岛市| 乐陵市|