无法在Selenium中找到/点击xlink:href

时间:2014-11-21 14:03:32

标签: python selenium ember.js

早上好,

我遇到了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()

我尝试的任何东西似乎都没有用。

有没有人有关于如何在页面上找到此元素的建议?

谢谢。

1 个答案:

答案 0 :(得分:0)

原因似乎是因为svgimage元素嵌入在链接中。 例如,当您尝试通过css "img[alt='Edit Product']"查找时,此处存在两个错误。

  1. 选择器应为image,而不是img - "image[alt='Edit Product']"
  2. 您尝试单击的按钮是第二个父级,因此在纯jQuery中您可以执行以下操作:

    $("image[alt='Edit product']").parents('a').click()
    
  3. 在Selenium中不熟悉其他方法,但至少你可以这样做:

    .find_element_by_xpath('..').find_element_by_xpath('..')
    

    转到您要查找的a元素。