selenium玩轉svg操作
阿新 • • 發佈:2017-09-05
方法 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操作