Selenium 如何找到元素的xpath?

Selenium 如何找到元素的xpath?,selenium,rselenium,Selenium,Rselenium,我正在尝试查找svg的xpath,它位于 "//label[@class='btn btn-light p-1']/input[@value='star'] 然后选择设计 这将在star的值之前得到前面的元素,因为它不是唯一的,所以将给出两个值。您可以使用这个xpath- (//label[contains(@class,"btn btn-light")]/*[local-name() = 'svg'])[2] 您可以将元素编号替换为[2]。我不喜欢做此类X

我正在尝试查找svg的
xpath
,它位于

"//label[@class='btn btn-light p-1']/input[@value='star']
然后选择设计


这将在star的值之前得到前面的元素,因为它不是唯一的,所以将给出两个值。

您可以使用这个
xpath
-

(//label[contains(@class,"btn btn-light")]/*[local-name() = 'svg'])[2]

您可以将元素编号替换为[2]。

我不喜欢做此类XPath,因为我同意Eliyahu的观点-此类XPath不会是唯一的…但既然您提出了要求,就这样吧,这应该适合您:

//input[@value = 'star']/parent::label[contains(@class, 'btn-light')]/preceding-sibling::label[contains(@class, 'btn-light')]/*[name() = 'svg']

“然后选择设计”是什么意思?另外,
//label[@class='btn btn light p-1']/input[@value='star']
不是唯一的定位器当您打开网站,然后单击设计按钮时,您将找到模式、标记边框、标记中心,然后查看页面源代码,您将看到上面的div、标签和输入。我们可以将xpath与输入关联起来吗[@value='star']???即我不想使用[2],因为可能位置会改变
//input[@value = 'star']/parent::label[contains(@class, 'btn-light')]/preceding-sibling::label[contains(@class, 'btn-light')]/*[name() = 'svg']