LoginSignup
7
5

More than 5 years have passed since last update.

Selenium WebDriver SVG要素をxpathで取得する方法

Last updated at Posted at 2017-03-28

間違った取得方法

WebDriver::By.xpathでSVGを取得する時、SVGはDIV要素等と違って以下のように取得することができません

要素名で取得
driver.findElement(By.xpath("//svg"));

ただし、以下のように全称セレクタを使用してidで取得することは可能です。

全称セレクタ+idで取得
driver.findElement(By.xpath("//*[@id='test']"));

しかし、一般的に各SVGにidが付与されているケースは少ないのであまり有効ではありません。

正しい取得方法

次のようにname Functionを使用することでQNameとして要素を取得することができます。

svg要素を取得
driver.findElement(By.xpath("//*[name()='svg']"));

gやpath要素も同様に取得可能です。

path要素を取得
driver.findElement(By.xpath("//*[name()='svg']//*[name()='g']//*[name()='path']"));
7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5