我必须在这个文本框中输入数值,我尝试使用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">
答案 0 :(得分:1)
示例中的ID是
CaseTypes_64b4d9c0-c574-40bd-a450-0c6f94844a2e__Amount
我猜测CaseTypes
和Amount
之间的部分是随机的。
您可以使用以下选项来选择文本框:
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();