页面能定位到元素,但是代码却找不到元素

报错信息:

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
posted @ 2022-12-13 15:10  **山止川行**  阅读(469)  评论(0编辑  收藏  举报