Selenium-如何检查xpath中的元素是否有特定的img src url



这有点小众,但我想点击硒(python(的不和谐反应,但只点击具有特定img src的反应。

我让它在点击反应的地方工作,但它点击的是每一个反应,而不仅仅是我想要的。

我试着用咏叹调标签让它只点击某个元素,但这也不起作用。

if i.get_attribute('aria-label') == "🗝️, press to react":

我的功能:

def Bot():
elements = driver.find_elements_by_xpath("//div[contains(@class, 'message-2qnXI6')]/div[2]/div/div[1]/div/div/div")
for i in elements:
if i.find_element_by_xpath("//div[contains(@class, 'message-2qnXI6')]/div[2]/div/div[1]/div/div/div/img").get_attribute("src") == "https://discord.com/assets/e14bea9653868307f4d1e70fa17e2535.svg":
i.click()
continue
else:
break

HTML:

<div class="reactionInner-15NvIl" aria-label="🗝️, press to react" aria-pressed="true" role="button" tabindex="0">
<img src="/assets/e14bea9653868307f4d1e70fa17e2535.svg" alt="🗝️" draggable="false" class="emoji">
<div class="reactionCount-2mvXRV" style="min-width: 9px;">2</div></div>

我只是不太确定该怎么做;验证";我正在单击的元素具有我想要的特定img src。

感谢您的帮助。

i.find_element_by_xpath("//div[contains(@class, 'message-2qnXI6')]/div[2]/div/div[1]/div/div/div/img").get_attribute("src") 

这总是找到相同的元素,

"//div[contains(@class, 'message-2qnXI6')]/div[2]/div/div[1]/div/div/div/img"

如果你想找到i的孩子,你必须使用:

i.find_element_by_xpath(".//img").get_attribute("src") 

请参阅"。"在front中,这将查找"i"的所有子项,否则xpath搜索总是从"/"根开始

def Bot():
elements = driver.find_elements_by_xpath("//div[contains(@class, 'message-2qnXI6')]/div[2]/div/div[1]/div/div/div")
for i in elements:
if i.find_element_by_xpath(".//img").get_attribute("src") == "https://discord.com/assets/e14bea9653868307f4d1e70fa17e2535.svg":
i.click()
continue
else:
break

您可以使用它来点击带有该标记的图像。

tag='discord.com/assets/e14bea9653868307f4d1e70fa17e2535.svg'
try:
i.find_element_by_xpath("//img[@src='{}']".format(tag))
i.click()
break
except:
continue

最新更新