最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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種解決辦法全搞定的評論 (共 條)

分享到微博請遵守國家法律
桐乡市| 邹平县| 清河县| 敦煌市| 陵川县| 靖州| 锦州市| 永州市| 肇庆市| 韩城市| 姜堰市| 延川县| 南安市| 荥经县| 平谷区| 彰武县| 景德镇市| 师宗县| 木兰县| 大同市| 南和县| 博白县| 兖州市| 莒南县| 正安县| 福建省| 偏关县| 抚州市| 贵港市| 阿克苏市| 金塔县| 平罗县| 潍坊市| 海阳市| 宜兰市| 吉林省| 彭泽县| 新乡县| 上高县| 汝城县| 九龙坡区|