selenium 定位不到元素排查

2021-10-24 08:49:05 字數 1630 閱讀 3835

1.動態id定位不到元素

for example:

//webelement xiexin_element = driver.findelement(by.id("_mail_component_82_82"));

webelement xiexin_element = driver.findelement(by.xpath("//span[contains(.,『寫 信』)]"));

xiexin_element.click();

上面一段**注釋掉的部分為通過id定位element的,但是此id「_mail_component_82_82」後面的數字會隨著你每次登陸而變化,此時就無法通過id準確定位到element。

所以推薦使用xpath的相對路徑方法查詢到該元素。

2.iframe原因定位不到元素

密碼重置

原本可以通過

webelement element = driver.findelement(by.linktext(「密碼重置」));

來定位此元素,但是由於該元素在iframe id="left_frame"這個frame裡邊 所以需要先通過定位frame然後再定位frame裡邊的某乙個元素的方法定位此元素

webelement element =driver.switchto().frame(「left_frame」).findelement(by.linktext(「密碼重置」));

3.不在同乙個frame裡邊查詢元素

大家可能會遇到頁面左邊一欄屬於left_frame,右側屬於right_frame的情況,此時如果當前處在

left_frame,就無法通過id定位到right_frame的元素。此時需要通過以下語句切換到預設的content

driver.switchto().defaultcontent();

例如當前所在的frame為left_frame

webelement xiaoshoumingxi_element = driver.switchto().frame(「left_frame」).findelement(by.linktext(「銷售明細」));

xiaoshoumingxi_element.click();

需要切換到right_frame      

driver.switchto().defaultcontent();

select quanzhong_select2 = new select(driver.switchto().frame(「right_frame」).findelement(by.id(「coupon_type_str」)));

quanzhong_select2.selectbyvisibletext(「售後0小時」);

xpath描述錯誤

這個是因為在描述路徑的時候沒有按照xpath的規則來寫 造成找不到元素的情況出現

6.firefox安全性強,不允許跨域呼叫出現報錯

錯誤描述:uncaught exception: [exception… 「component returned failure code: 0x80004005 (ns_error_failure) [nsidomnshtmldocument.execcommand]」 nsresult: 「0x80004005 (ns_error_failure)」 location:

selenium定位不到元素

selenium定位不到元素時,網上大部分查到都是iframe的切換問題,然後是多視窗 控制代碼的處理問題,在初學是遇到定位不到元素,一直在找上面的問題,發現都不是上面的問題,後來才發現是頁面重新整理的問題,頁面重新整理後,元素就失效了,需要重新定位元素,哪怕看到元素重新整理前後並沒有變化,可是它確...

為什麼selenium定位不到元素

在做web應用的自動化測試時,定位元素是必不可少的,這個過程經常會碰到定位不到元素的情況,一般可以從以下幾個方面著手解決 1 frame iframe原因定位不到元素 這個是最常見的原因,首先要理解下frame的實質,frame中實際上是嵌入了另乙個頁面,而webdriver每次只能在乙個頁面識別,...

selenium定位不到a標籤

當頁面中使用的a標籤代替button去執行submit的方法時,通過class name,css selecter 類選擇器 都沒辦法定位a標籤,但是通過css selecter 屬性名 屬性值 xpath可以定位到。定位不到a標籤 driver.find element by class name...