Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 为什么可以';我找不到一个';svg';包含';svg';元素?_Html_Xpath - Fatal编程技术网

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']