Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

間違った取得方法

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']"));
safie
Safie(セーフィー)はクラウド録画カメラシェアNo.1!映像プラットフォームを開発・運営しています。
https://safie.link/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away