我试图在找到包含特定主题标签(哈士奇)的评论后单击“删除评论”按钮。
由于有多个“删除评论”按钮,所以我认为最好的方法是只找到带有#标签的评论,然后单击最近的按钮,但是我可能是错的。
在图片中,我想单击标签下方而不是下方的突出显示的按钮:
到目前为止,我有
self.browser.find_element_by_xpath('//a[@href="/explore/tags/husky/"]')
成功找到标签的位置,但此后我很困惑。
答案 0 :(得分:3)
您可以使用下面的xpath之一。
说明:使用“ #hasky” 文本找到 a ,使用“ menuitem”获得第一父级 li 角色并获得子按钮(具有“删除评论” 标题属性):
//a[.='#husky']/ancestor::li[@role='menuitem'][1]//button
//a[.='#husky']/ancestor::li[@role='menuitem'][1]//button[@title='Delete Comment']
//a[contains(@href, "/explore/tags/husky/")]/ancestor::li[@role='menuitem'][1]//button
//li[@role='menuitem' and .//a[.='#husky']]//button[@title='Delete Comment']
答案 1 :(得分:-2)
简单的事情
//a[.='#husky']//following::button[@title='Delete Comment'][1]
应该可以正常工作。如果是我,则将其包装在方法中,并传递链接文本以删除适当的注释。然后,您可以获取链接文本,并将其放在#husky
位置的定位器中。
def delete_comment(comment)
driver.find_element_by_xpath(f"//a[.='{comment}']//following::button[@title='Delete Comment'][1]").click()