我正在尝试编写一个脚本,以便在Reddit中删除我在个人资料中的所有评论。
所以我目前正在使用Selenium
登录并尝试删除我的评论,但是当我的帖子在我的评论后按删除后,我陷入困境,并且它变为"你是不是肯定是/否"然后它无法找到"是"元素Xpath
。以下代码抛出错误:
引发exception_class(消息,屏幕,堆栈跟踪) selenium.common.exceptions.ElementNotVisibleException:消息: 元素当前不可见,因此可能无法与之交互 堆栈跟踪:
我的代码如下:
del_button = driver.find_element_by_xpath("//*[contains(@id,'thing_"+delete_type+"')]//div[2]/ul/li[7]/form/span[1]/a")
del_button.click()
time.sleep(3)
yes_button = driver.find_element_by_xpath("//*[contains(@id,'thing_"+delete_type+"')]//div[2]/ul/li[7]/form/span[1]//a[1]")
yes_button.click()
time.sleep(3)
答案 0 :(得分:1)
由于页面上可能存在多个具有相同属性的隐藏元素,因此您可能需要使用index
来点击确切元素:
driver.find_elements_by_xpath('//a[@class="yes"]')[N].click() # N is the index of target link
如果您无法定义确切的索引,可以使用以下代码:
from selenium.common.exceptions import ElementNotVisibleException
for link in driver.find_elements_by_xpath('//a[@class="yes"]'):
try:
link.click()
break
except ElementNotVisibleException:
pass