隨着前端技術發展,svg(可伸縮矢量圖形 )在前端應用中廣泛被使用,然而采用傳統的xpath元素定位方法已經無法對其進行定位,我們需要將svg標簽及其包含的子標簽用以下方式表達:
*[name()="svg"]/*[name()="子標簽名稱"][@屬性=""]
例如:
//div/span[text()="自動化測試"]/../../..//span[1]//*[name()='svg'][@class="svg-icon"]/*[name()='use']
操作實例如下圖所示:

在selenium自動化測試中需要使用Actions類對象,具體代碼如下:
public void clickEditDictBtn(WebDriver driver,String str){ WebElement webElement=driver.findElement(By.xpath("//div/span[text()=\"自動化測試\"]/../../..//span[1]//*[name()='svg']/*[name()='use']")); Actions actions=new Actions(driver); actions.moveToElement(webElement).click().perform(); }
為此需要引入
import org.openqa.selenium.interactions.Actions;
