页面能定位到元素,但是代码却找不到元素
报错信息:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//tr[2]//td//div//span[text()="购买"]"}
原因:
打开了两个窗口,但是selenim一直处于第一个窗口中,所以页面能定位到元素,但是代码却找不到元素。
解决方法:
list_windows = driver.window_handles driver.switch_to.window(list_windows[1]) ele = driver.find_element(By.XPATH,'//tr[2]//td//div//span[text()="购买"]')
窗口句柄切换:https://www.cnblogs.com/liyongmei/p/16979680.html
Web自动化当中,如果报错说元素找不到(no such element),可能的原因有哪些呢?
1、元素可能在iframe当中,但是你没有切换就直接找元素。
https://www.cnblogs.com/liyongmei/p/16987537.html
2、你写的元素定位,与运行时的元素定位是不一样的。你的元素定位写错了。
这个时候去浏览器F12元素定位看看是不是唯一的定位到这一个元素
3、等待不够。--- 没有等待或者等待太短。
https://www.cnblogs.com/liyongmei/p/16984942.html
4、你要操作的元素在另外的windows窗口中,但是你没切换。
https://www.cnblogs.com/liyongmei/p/16979680.html