如何在VS的C#中使用Selenium Webdriver中的相对Xpath

时间:2018-12-01 03:35:38

标签: selenium xpath webdriver

我正在通过我们的网站从事自动化项目。 有一个输入框,我需要将消息传递给它,但是绝对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内部使用它,它总是会给我一个错误消息,因为我使用了Chrome的相对Xpath复制。

Error message of relative Xpath in VB

如果我使用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']")]

1 个答案:

答案 0 :(得分:1)

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

// * [@ id =“ _ ariaId_129”] //输入

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

对于出现错误的屏幕截图,这是因为您有不能转义的双引号。您将必须执行以下操作:

“ // * [@ id = \” _ ariaId_129 \“] //输入”

OR

“ // * [@ id ='_ ariaId_129'] //输入”