首页 > 解决方案 > 如何在 C# 中使用 VS 中的 Selenium webdriver 中的相对 Xpath

问题描述

我正在使用我们的网站进行自动化项目。有一个输入框我需要将消息传递给它,但是绝对 Xpath 看起来总是在变化,所以我不能使用它。

像这样的相对 Xpath

//*[@id="_ariaId_129"]/div/div/div[1]/div/span/div/form/input

像这样的绝对 Xpath

/html/body/div[13]/div/div[2]/div[3]/div/div/div[1]/div/span/div/form/input

如果我在 VS 中使用它,它总是在 VS 中给我一条错误消息,我使用的是来自 Chrome 的相对 Xpath 副本。

VB中相对Xpath的错误信息

如果我使用 Absolute Xpath,它可以工作,但正如我所说,下次我测试它时它可能会改变。

有人可以帮我看看在 VS 中使用相对 Xpath 的正确格式是什么?我试着像下面这样写,它们都不起作用。我试图在 Xpath 中将“”更改为 '',在 VS 中没有错误,但找不到元素。

[FindsBy(How = How.XPath, Using = "//*[@id="_ariaId_129"]/div/div/div[1]/div/span/div/form/input")]

或者[FindsBy(How = How.XPath, Using = "//input[@id='_ariaId_129']")]

标签: seleniumxpathwebdriver

解决方案


假设父元素下只有一个输入(带有 Id 的那个),您可以轻松地使用:

//*[@id="_ariaId_129"]//输入

如果不是这种情况,那么您必须找到一个更接近您想要选择的 id,或者直接将一个添加到您想要与之交互的输入中。

对于带有错误的屏幕截图,这是因为您有未转义的双引号。你必须这样做:

"//*[@id=\"_ariaId_129\"]//输入"

或者

"//*[@id='_ariaId_129']//输入"


推荐阅读