1. 程式人生 > >selenium玩轉svg操作

selenium玩轉svg操作

方法 color row 我們 log 結構 uil like 裏的

今天寫腳本發現頁面有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();

selenium玩轉svg操作