一:selenium+java,報(bào)錯(cuò):java.lang.NullPointerException,ElmentNotFoundException
java.lang.NullPointerException:一般報(bào)空指針錯(cuò)誤,說(shuō)明元素沒(méi)找到,可能是定位不正確
ElmentNotFoundException:原因是程序執(zhí)行太快,元素還沒(méi)出現(xiàn),需要等待元素出現(xiàn),這時(shí)候可以試一下Thread.sleep()方法,如果成功,再用智能的wait方法來(lái)解決問(wèn)題。
二、因?yàn)閕frame定位不到元素,也找不到iframe name,則用firebug,找到對(duì)應(yīng)iframe,右鍵復(fù)制xpath,實(shí)現(xiàn)方法有兩種:
1、WebElementiframe=driver.findElement(By.xpath("/html/body/div[5]/div/div[3]/iframe[2]"));
driver.switchTo().frame(iframe);
2、或直接從firebug中找到該iframe的name,用以下方法實(shí)現(xiàn):
driver.switchTo().frame("iframe10"); //iframe10是此iframe的name
三:selenium報(bào)錯(cuò):Error near line 0: End of document expected.
原因是:yaml文件格式不正確,檢查一下冒號(hào)等是否正確,是否為英文。
四:testng的默認(rèn)執(zhí)行順序是按照方法首字母順序
五:checkbox或radiobox有時(shí)會(huì)定位不成功,原因是如下圖左邊按鈕和右邊文字“特定用戶(hù)”的xpath分別為:.//*[@id='target_user']/div[1]/label/div/ins和.//*[@id='target_user']/div[1]/label,若用左邊的按鈕定位并點(diǎn)擊,則找不到元素,用右邊的文字并點(diǎn)擊就能成功;