当我在回答有关Selenium的另一个问题时尝试一些XPath SVG路径时,发现在Chrome上使用XPath有一个奇怪的行为(我没有在其他浏览器上尝试过)。
在http://www.amcharts.com/svg-maps/?map=usa,为什么不说XPath的工作?
//*[@id="chartdiv"]/div/div[1]/svg/g[7]/g/g[1]
而这一次呢?
//*[@id="chartdiv"]/div/div[1]/*[name()="svg"]/*[name()="g"][7]/*[name()="g"]/*[name()="g"][2]
我必须进行以下更改:
/g 变成 /*[name()="g"]/svg 变成 /*[name()="svg"]/path 变成 /*[name()="path"]奇怪的是,我通过右键单击元素HTML获得了第一个XPath,然后从那里复制了XPath。

我在http://gmsgroup.com/municenter.asp上有另一个示例,其中:
//*[@id='ext-gen203']/*[name()='svg']/*[name()='a']/*[name()='path'][starts-with(@d, 'M136.65')]/.. 作品,//*[@id='ext-gen203']/*[name()='svg']/*[name()='a'][@title='Hawaii'] 没有。在这里,/*[name()='a'][@title='Hawaii']找不到<a title="Hawaii"></a>,为什么?