这有点小众,但我想点击硒(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