如何使用SeleniumWeb驱动程序和python作为脚本语言单击图像

如何使用SeleniumWeb驱动程序和python作为脚本语言单击图像,python,selenium-webdriver,Python,Selenium Webdriver,我正在使用python编写selenium webdriver程序。 我的问题是,我无法使用x路径或css路径或id单击图像 driver.find_element_by_xpath("/div/svg/g/g[3]/g/rect").click() driver.find_element_by_css_selector(""div#servicecatalogdisplaygraph.x-component svg g g g rect") 我的html页面信息是:

我正在使用python编写selenium webdriver程序。
我的问题是,我无法使用x路径或css路径或id单击图像

    driver.find_element_by_xpath("/div/svg/g/g[3]/g/rect").click()
    driver.find_element_by_css_selector(""div#servicecatalogdisplaygraph.x-component svg g g g rect")
我的html页面信息是:

    <div id="servicecatalogdisplaygraph" class="x-component graph x-border-item x-box-item x-        component-default" style="background: none repeat scroll 0% 0% white; padding: 10px; overflow: auto; margin: 0px; width: 484px; left: 0px; top: 0px; height: 491px;">
    <svg style="width: 100%; height: 100%; min-width: 89px; min-height: 422px;">
    <g>
    <g>
    <g>
    <g>
    <g style="cursor: pointer;">
    <image xlink:href="/images/mxgraph/link.png" style="pointer-events:none" x="42" y="202" width="16" height="16" stroke-width="1" transform=" scale(1 1) translate(0 0)">
    <rect stroke="none" fill="none" visibility="hidden" pointer-events="fill" x="42" y="202" width="16" height="16" stroke-width="1">
    </g>
    </g>

第一个提示:尽可能使用较短的选择器,您不需要这样的开销。 让我们使用代码示例(我假设dom中的元素是子体),定位并单击图像:

driver.find_element_by_css_selector("#servicecatalogdisplaygraph image").click()

这应该行得通


请确保图像元素(或矩形元素)可见。

谢谢您的提示。。。我的问题还没有解决如果你有任何其他想法请告诉我可能是iFrame中的元素?是#servicecatalogdisplaygraph元素的image/rect后代吗?如果在DOM中选择它们,它们是否显示为可见的?问题是它是svg元素中的一个图像,请参见此答案
driver.find_element_by_css_selector("#servicecatalogdisplaygraph rect").click()