selenium无法定位元素
由一次selenium无法定位引发的思考
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:”xpath”,”selector”:”//input[@name=”product_title”]”}
基于以上的报错,开始排查:
猜测1、xpath不对,不可能,在页面f12已经定位出来了,继续猜错;
猜测2、操作太快,对应元素还没有加载出来;有可能,来个time.sleep(10),重新跑脚本,还是报元素定位不到,继续猜错
猜测3、元素在iframe定位不到;有可能,开始找
至此问题原因找到,开始处理,先切换对应iframe,
driver.switch_to.frame('frameMain')
再定位元素
driver.find_element_by_xpath('//input[@name="product_title"]').send_keys('标题')
问题完美解决。
排查问题时也附带想了还有另外几种可能,一并附上:
1.动态id使得元素定位不到,可以换xpath定位
2.不可见元素定位不到,可以找可见元素