我有一个selenium python的问题,选择一个html元素图标并单击

nnsrf1az  于 2023-01-30  发布在  Python
关注(0)|答案(2)|浏览(128)

我尝试单击以关闭来自带有selenium的网站的消息。但是,当我单击它时,Visual Studio Code控制台中出现一条消息,指出无法单击该元素,因为它不是可单击的元素。

sleep(5)
web.find_element(By.XPATH, '//*[@id="top-container"]/div[1]/div/i').click()

开发工具元素
errorhttps://i.stack.imgur.com/sgzoE.png
如果有人知道删除devtool中元素库,为什么我需要删除该消息以显示另一个按钮来继续应用程序

8hhllhi2

8hhllhi21#

如果你仔细查看错误消息,它并没有说它不是一个可点击的元素,而是说点击被拦截了,换句话说,Selenium试图点击X来关闭,但是另一个元素<h3>挡住了去路。
看起来你的定位器没问题。根据错误消息,它看起来找到了正确的元素。我个人会把它改为

web.find_element(By.CSS_SELECTOR, 'i.icon-remove').click()

因为我认为它可读性更强,而且不太可能点击错误的元素。
我看不到页面,所以我不知道h3是什么,是否有可能删除它.所以,如果你不能绕过h3,你可能要用JS来点击元素.

icon = web.find_element(By.CSS_SELECTOR, 'i.icon-remove')
driver.execute_script("arguments[0].click();", icon)
dm7nw8vv

dm7nw8vv2#

调用元素的方法有很多种,让我们试试下面的方法:

web.find_element(By.ID, "top-container").click()

请让我知道如果工程,无论哪种方式,我们可以看到其他选项

相关问题