如何使用页面对象模型增加或减少文本框值

时间:2017-11-16 11:51:45

标签: c# selenium selenium-webdriver

我必须在这个文本框中输入数值,我尝试使用xpath但是id每次都在不断更改,我在下面添加了图片和源代码。

How can i input the value in this textbox?

以下是我设法使用Xpath选择的源代码,但id仍在不断更改

<input class="t-input" data-val="true" data-val-number="The field Amount must be a number." id="CaseTypes_64b4d9c0-c574-40bd-a450-0c6f94844a2e__Amount" name="CaseTypes[64b4d9c0-c574-40bd-a450-0c6f94844a2e].Amount" style="width: 110px; color: rgb(255, 255, 255);" type="text">

2 个答案:

答案 0 :(得分:1)

示例中的ID是

CaseTypes_64b4d9c0-c574-40bd-a450-0c6f94844a2e__Amount

我猜测CaseTypesAmount之间的部分是随机的。

您可以使用以下选项来选择文本框:

driver.FindElement(By.CssSelector("*[id^='CaseTypes'][id$='Amount']"));

id^=''表示:值应该从...开始 id$=''表示:值应以

结尾

将这两者结合使用,即使CaseTypes和Amount之间的部分发生变化,也可以搜索文本框。

之后,您可以call.SendKeys("Enter your text here")将文字发送到文本框

答案 1 :(得分:0)

根据您分享的HTML,您可以使用以下任何选项:

  • XPath

    driver.FindElement(By.XPath("//input[@class='t-input'][starts-with(@id, 'CaseTypes_')][starts-with(@name, 'CaseTypes[')]")).Click();
    
  • CssSelector

    driver.FindElement(By.CssSelector("input[class='t-input'][id^='CaseTypes_'][name^='CaseTypes[']")).Click();