1. 程式人生 > 實用技巧 >selenium-SVG 嵌入HTML,如何定位元素

selenium-SVG 嵌入HTML,如何定位元素

背景,html中嵌入了SVG,定位元素時,不能定位到。

SVG 意為可縮放向量圖形(Scalable Vector Graphics)。
SVG 使用 XML 格式定義影象。

SVG與其他影象格式相比,SVG的優勢在於

    • SVG 可被非常多的工具讀取和修改(比如記事本)
    • SVG 與 JPEG 和 GIF 影象比起來,尺寸更小,且可壓縮性更強。
    • SVG 是可伸縮的
    • SVG 影象可在任何的解析度下被高質量地列印
    • SVG 可在影象質量不下降的情況下被放大
    • SVG 影象中的文字是可選的,同時也是可搜尋的(很適合製作地圖)
    • SVG 可以與 Java 技術一起執行
    • SVG 是開放的標準
    • SVG 檔案是純粹的 XML

解決方案:

<rect>

<rect>元素是基本的SVG形狀,可建立矩形,該矩形由其角的位置,寬度和高度定義。矩形的角可能會變圓。

一個例子:

<svg viewBox="0 0 220 100" xmlns="http://www.w3.org/2000/svg">
  <!-- Simple rect element -->
  <rect x="0" y="0" width="100" height="100" />

  <!-- Rounded corner rect element -->
  <rect x="120" y="0" width="100" height="100" rx="15" ry="15" />
</svg>





屬性

<rect>元素的attributes如下:


x:此屬性確定矩形的x座標。


值型別:| ;預設值:0動畫:是

y:此屬性確定矩形的y座標。


值型別:| ;預設值:0動畫:是

width:此屬性確定矩形的寬度。


值型別:自動|| ;預設值:自動;動畫:是

height:此屬性確定矩形的高度。


值型別:自動|| ;預設值:自動;動畫:是

rx:此屬性確定矩形的水平角半徑。


值型別:自動|| ;預設值:自動;動畫:是

ry:此屬性確定矩形的垂直角半徑。


值型別:自動|| ;預設值:自動;動畫:是

pathLength:此屬性允許以使用者單位指定路徑的總長度。


值型別: ;預設值:無;動畫:是




注意:從SVG2開始,x,y,寬度,高度,rx和ry是幾何屬性,這意味著這些屬性也可以用作該元素的CSS屬性。





這個用例

由於<rect>元素是SVG元素,因此要定位此類元素,則在使用SVG namespace訪問元素時必須明確指定,如下所示:


對於<svg>元素:

//*[name()="svg"]


對於<g>元素:

//*[name()="svg"]/*[name()="g"]


對於<rect>元素:

//*[name()="svg"]/*[name()="g"]/*[name()="rect"]
//*[name()="svg"]/*[name()="rect"]