如何识别文本框并在文本框中放置值?
代码段
<div id="CTR_StartDate" class=" datePickerXtreme datePickerContainer datePickerXtreme datePickerContainer datePickerXtreme datePickerContainer">
<input tabindex="0" name="ct100$CTR_StartDatectl00" value="Date" id="CTR_StartDate_ctl00" class="datePickerXtremeDateOnly validField" type="text">
<a tabindex="0" href="#" class="ui-datepicker-icon"> </a>
<input tabindex="0" value="Tuesday, 10 January 2017 00:00:00" name="ct100$CTR_StartDatectl01" id="CTR_StartDate_ctl01" type="hidden">
<input tabindex="0" value="Tuesday, 10 January 2017 00:00:00" name="ct100$CTR_StartDatectl02" id="CTR_StartDate_ctl02" type="hidden">
<span id="CTR_StartDate_ctl04" category="Common" style="color:Red;visibility:hidden;"></span>
<input tabindex="0" name="ct100$CTR_StartDatectl03" id="CTR_StartDate_ctl03" value="GMT Standard Time" type="hidden">
</div>
以下是我用来放置文字的代码:
IWebElement ContractStartDate = driver.FindElement(By.Id("CTR_StartDate_ctl00"));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("CTR_StartDate_ctl00")));
ContractStartDate.SendKeys("14/07/2016");
我用Name尝试过它,它仍然无法正常工作。它很少有效。那是非常罕见的。我试过点击文本框并使用发送键放置值,但仍然无法正常工作。有时会发生奇怪的例外
有人可以帮我这个吗?
答案 0 :(得分:1)
你可以尝试使用Css选择器吗?
String selector = "div.datePickerXtreme input.datePickerXtremeDateOnly";
IWebElement ContractStartDate = driver.FindElement(By.CssSelector(selector));
ContractStartDate.Clear();
ContractStartDate.SendKeys("14/07/2016");
答案 1 :(得分:0)
可能是您的问题是您要首先找到元素,然后检查它的可见性,然后在已找到的.sendKeys()
上使用element
,这些ContractStartDate
可能是可见的或未存储到IWebElement ContractStartDate = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("CTR_StartDate_ctl00")));
ContractStartDate.Click();
ContractStartDate.SendKeys("14/07/2016");
{ {1}}这就是为什么你的测试用例有时会通过并且有些时间失败的原因。请尝试以下方法: -
array_key_exists
希望它能奏效...... :)