2016-06-18 51 views
2

我一直在研究這個測試腳本,我無法將它拖到SVG中的元素上以顯示工具提示。無法獲得moveToElement顯示SVG元素的工具提示在硒上

我已經將它存儲在一個變量中,並能夠使用xpath輸出一個屬性,但是當我使用moveToElement調用它時不起作用。

這是我使用XPath:

//*[name()='svg']/*[name()='g'][@class='highcharts-series-group']/*[name()='g'][18]/*[name()='path'][2] 

但這XPath的工作原理:

//*[name()='svg']/*[name()='g'][@class='highcharts-series-group']/*[name()='g'][18]/*[name()='path'][1] 

我也試過,但沒有成功[統計,有,VAL]。

更新: 添加元素

的HTML
<g class="highcharts-markers highcharts-tracker" visibility="visible" zIndex="12" transform="translate(0,26) scale(1 1)" clip-path="url(#highcharts-438)" style=""> 
    <path fill="#bdc94b" d="M 440 295.19999990878046 C 445.328 295.19999990878046 445.328 303.19999990878046 440 303.19999990878046 C 434.672 303.19999990878046 434.672 295.19999990878046 440 295.19999990878046 Z"></path> 
    <path fill="#bdc94b" d="M 417 292.4634146341463 C 422.328 292.4634146341463 422.328 300.4634146341463 417 300.4634146341463 C 411.672 300.4634146341463 411.672 292.4634146341463 417 292.4634146341463 Z"></path></g> 

更新:。

因此,使用後。點擊()建立()執行();我現在正在獲取元素而不是可點擊的錯誤消息。事實證明,在後面的標籤中還有另一個元素覆蓋在圖上。這將是一個很好的解決方法?

回答

0

第一個(失敗的)xpath正在尋找第二個< path>元素,而第二個(工作)xpath獲取第一個路徑元素。在我看來,源文件在第18組中只有一個< path>元素。

順便說一句,xpath可以簡化,以便更容易閱讀,更高效。

//svg/g[@class='highcharts-series-group']/g[18]/path[1] 

自/ * [名稱()= '{}節點名']等同於/ {節點名}

+0

感謝您的響應和小費!所以我知道在第18組中有第二個,因爲當我運行測試時,它不會失敗。我的麻煩是,當我使用該xpath鼠標/懸停在使用actions.moveToElement(元素);它不顯示/找到它來顯示工具提示。 – Glen

+0

嗯......在這種情況下,你還有另一個物體在元素之上嗎?它可能優先於鼠標事件。我認爲即使是透明的元素(除非被剪裁)也會優先考慮。 –

+0

可能。對我來說,第一條路徑沒有意義,但第二條路雖然不屬於同一第18條。就元素上方的其他對象而言,我沒有看到其中一個。 – Glen

相關問題