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

C# 如何使用页面对象模型增加或减少文本框值,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,我必须在这个文本框中输入数值,我尝试使用xpath,但每次id都在不断变化,我在下面添加了图片和源代码 下面是我使用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

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

下面是我使用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">

示例中的id是

CaseTypes\u 64b4d9c0-c574-40bd-a450-0c6f94844a2e\u金额

我猜
案例类型
金额
之间的部分是随机的

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

driver.FindElement(By.CssSelector("*[id^='CaseTypes'][id$='Amount']"));
id^=''
表示:值应以开头
id$=''
表示:值应以结尾

将这两者结合起来,即使案例类型和金额之间的部分发生变化,也可以搜索文本框


之后,您可以
call.SendKeys(“在此处输入文本”)
按照您共享的
HTML
将文本发送到文本框中,您可以使用以下任何选项:

  • XPath

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

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