selenium玩轉svg操作


今天寫腳本發現頁面有svg結構,里面的元素無法定位,查找很多資料,然后就記錄下來
初步嘗試直接在頁面中獲取svg中包含元素的xpath,直接利用selenium方法訪問,無法捕獲到相關元素信息。
SVG包含一些圖形元素,比如line,rect,circle等,很多情況下我們可以點擊SVG上的元素觸發一些event,比如打開context menu、在一個pie里選擇一個portion等。但是SVG在html看來是一個單獨的元素,我們怎么點擊svg里的元素呢?下面記錄下 Firefox和Chrome上的方法(其他browsers沒有試)
解決方案:
用xpath找到元素,新建一個Actions點擊就好了,要注意的是定位svg元素要用xpath的name()函數,比如這個locator://svg/line[2],要用//*[name()='svg']/*[name()='line'][2]"代替
代碼示例:
WebElement element = driver.findElement(By.xpath(sLocator)); //sLocator like "//*[name()='svg']/*[name()='line'][2]"

  new Actions(driver).click(element).build().perform();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM