selenium常见错误之一为no such element,遇到此问题,排查方法如下:
-
检查定位方法是否有误,如果是xpath,可打开浏览器开发者工具(F12),在控制台(console)输入$x("your xpath"),查看是否可定位到元素,如果定位不到,或者定位到多个,均会导致no such element报错。
-
检查等待时间是否不够,可以在元素定位语句前,加入Thread.Sleep(),强制等待一段时间,在确认界面已加载后,再定位元素(注意,Thread.Sleep()参数单位为毫秒,例如,等待5min,可输入Thread.Sleep(300000))。
-
检查元素是否在iframe框架下,打开浏览器开发者工具(F12),在元素(element)下,可查看html结构,如果定位元素上层有iframe,需要先切换到iframe后才能定位元素,语法如下:
driver.SwitchTo().Frame(driver.FindElement(By.XPath("iframe xpath")));
(对测试感兴趣的小伙伴也可以关注我,带你了解更多测试知识和行业信息)
网友评论