Html 为什么可以';我找不到一个';svg';包含';svg';元素?
在包含以下代码的网页中:Html 为什么可以';我找不到一个';svg';包含';svg';元素?,html,xpath,Html,Xpath,在包含以下代码的网页中: ... <svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1394" height="450" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%;"> <defs id="defs-a3c0aa"> <g
...
<svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1394" height="450" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%;">
<defs id="defs-a3c0aa">
<g class="clips">
<clipPath class="axesclip" id="clipa3c0aax">
<rect x="40" y="0" width="1274" height="450">
....
但没有击中回来。找到的元素数为零。在该页面中没有iframe
那么会发生什么呢?(我不能发布页面,因为它不是公共的)元素有一个名称空间。您需要使用前缀注册名称空间,并在XPath中指定前缀。例如,如果为http://www.w3.org/2000/svg
,XPath表达式将变为
//s:svg
注册名称空间的方式取决于您使用的语言。您最好使用下面的xpath
//*:svg
它意味着所有具有任何名称空间的子体,其本地名称为svg
//*[local-name() = 'svg']
以上一项也会起作用。希望这有帮助……我不知道硒是如何处理这一问题的。但是XPath通常会注意名称空间声明http://www.w3.org/2000/svg'或@*[名称空间-uri()='http://www.w3.org/2000/svg“]]也是……我希望这对你有用。。。
//*[local-name() = 'svg']