2017-12-18 249 views
1

在包含下面這段代碼的網頁:爲什麼我無法在包含'svg'元素的xpath的網頁中找到'svg'元素?

... 
<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"> 
.... 

我用的是「嘗試XPath的」擴展搜索的XPath,我嘗試下面的表達式:

//svg 

,但沒有命中回來。找到的元素數量爲零。該頁面中沒有iframe。

那麼會發生什麼? (我不能發佈頁面,因爲它不是公開的)...

回答

1

您更好地利用

//*:svg 

這意味着有任何名字空間和本地名稱的所有後代是svg

//*[local-name() = 'svg'] 

上面的一個也會工作。希望這有助於...

+0

是的,似乎與'嘗試XPath',但不是在硒內... – Alex

+0

我想你最好用最後一個...這比第一個更好... – Cylian

+0

我用了最後一個。不適用於硒 – Alex

0

<svg>元素有一個名稱空間。您需要使用前綴註冊名稱空間,並在XPath中指定前綴。例如,如果您註冊http://www.w3.org/2000/svg前綴s,XPath表達式將成爲

//s:svg 

如何註冊命名空間取決於你所使用的語言的方法。下面的XPath