早上好,
我遇到了Selenium的一个问题,它无法看到我试图点击的按钮。 这是元素的样子:
<a data-ember-action="792" href="#"></a>
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" style="margin-top:8px; margin-left:16px;" width="16" height="16">
<image alt="Edit product" xlink:href="/assets/images/edit.f65eeadf.svg" width="16" height="16" y="0" x="0" style="margin-top:8px; margin-left:16px;"></image>
</svg>
为了找到元素,我尝试了以下内容:
wd.find_element_by_xpath("//image[contains(@src,'/assets/images/edit.f65eeadf.svg')]/parent::a").click()
和:
edit_icon_button = wd.find_element_by_partial_link_text("f65eeadf.svg")
edit_icon_button.click()
和:
edit_product_icon = wd.find_element_by_css_selector("img[alt='Edit product'][src*='/assets/images/edit.f65eeadf.svg'")
edit_product_icon.click()
我尝试的任何东西似乎都没有用。
有没有人有关于如何在页面上找到此元素的建议?
谢谢。
答案 0 :(得分:0)
原因似乎是因为svg
和image
元素嵌入在链接中。
例如,当您尝试通过css "img[alt='Edit Product']"
查找时,此处存在两个错误。
image
,而不是img
- "image[alt='Edit Product']"
您尝试单击的按钮是第二个父级,因此在纯jQuery中您可以执行以下操作:
$("image[alt='Edit product']").parents('a').click()
在Selenium中不熟悉其他方法,但至少你可以这样做:
.find_element_by_xpath('..').find_element_by_xpath('..')
转到您要查找的a
元素。