Selenium无法对SVG元素执行操作

时间:2015-06-10 11:25:43

标签: html selenium xpath

我正在开发一个网页,其中包含6个svg标签,我必须验证每个svg,其中一个就像下面一个共有26个路径,我必须找到第18个

html就像这样

    <div>
    <svg>
    <circle r="80" cy="80" cx="80" stroke="#f4f4f4" fill="#ffffff" class="svg-pie-outline"></circle>
<path transform="translate(80,80)" stroke-opacity="0" stroke="#21628e" fill-opacity="0.3" stroke-width="1" fill="#1f77b4" d="M4.572014716816786e-15,-74.66666666666667A74.66666666666667,74.66666666666667 0 1,1 -73.57464370459023,-12.723321691040942L-45.98415231536889,-7.952076056900588A46.666666666666664,46.666666666666664 0 1,0 2.8575091980104907e-15,-46.666666666666664Z" class="svg-pie-slice"></path>
<path transform="translate(80,80)" stroke-opacity="1" stroke="#8598b1" fill-opacity="1" stroke-width="1" fill="#aec7e8" d="M-73.57464370459023,-12.723321691040942A74.66666666666667,74.66666666666667 0 0,1 -34.86148247133797,-66.02869187718099L-21.78842654458623,-41.267932423238115A46.666666666666664,46.666666666666664 0 0,0 -45.98415231536889,-7.952076056900588Z" class="svg-pie-slice"></path>
<path transform="translate(80,80)" stroke-opacity="0" stroke="#ffffff" fill-opacity="0.3" stroke-width="1" fill="#ff7f0e" d="M-34.86148247133797,-66.02869187718099A74.66666666666667,74.66666666666667 0 0,1 -24.17659693792926,-70.64420196740863L-15.110373086205787,-44.152626229630386A46.666666666666664,46.666666666666664 0 0,0 -21.78842654458623,-41.267932423238115Z" class="svg-pie-slice"></path>
<path transform="translate(80,80)" stroke-opacity="0" stroke="#ffffff" fill-opacity="0.3" stroke-width="1" fill="#ffbb78" d="M-24.17659693792926,-70.64420196740863A74.66666666666667,74.66666666666667 0 0,1 -13.265702442700245,-73.47878775410526L-8.291064026687652,-45.92424234631578A46.666666666666664,46.666666666666664 0 0,0 -15.110373086205787,-44.152626229630386Z" class="svg-pie-slice"></path>

    </svg>
    </div>

我有xpath遍历路径但无法找到每条路径

此xpath将定位svg

中的所有路径
html/body/div/div[1]/main/div/div[2]/div[3]/div[2]/ol[1]/li/article/div/div/div/div/div[1]/div/div/*[name()='svg']/*[name()='path']

它将遍历所有无法点击各个路径的路径,请帮助

没有找到列表中的任何路径

html/body/div/div[1]/main/div/div[2]/div[3]/div[2]/ol[1]/li/article/div/div/div/div/div[1]/div/div/svg/path[18]

没有找到列表中的任何路径

html/body/div/div[1]/main/div/div[2]/div[3]/div[2]/ol[1]/li/article/div/div/div/div/div[1]/div/div/*[name()='svg']/*[name()='path[2]']

没有找到列表中的任何路径

html/body/div/div[1]/main/div/div[2]/div[3]/div[2]/ol[1]/li/article/div/div/div/div/div[1]/div/div/*[name()='svg']/*[name()='path']/*[name()='path']

请帮助

1 个答案:

答案 0 :(得分:1)

经过几天的研究,我得到了访问svg元素的解决方案

遍历特定元素的xpath

.//*[@id='global-wrapper']/div[1]/main/div/div[2]/div[3]/div[1]/ol/li[1]/article/div/div/div/div/div[1]/div/*[name()='svg']/*[name()='path' and @fill='#aec7e8']

添加一个唯一的属性来访问我的情况下的元素,它是填充颜色