簡體   English   中英

Selenium WebDriver C#,無法在文本框中輸入值

[英]Selenium WebDriver C#, Unable to Enter value in a textbox

如何識別文本框並在文本框中放置一個值?

代碼段

<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">&nbsp;</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嘗試過,但仍然無法正常工作。 它很少起作用。 那是非常罕見的。 我嘗試單擊文本框並使用發送鍵放置值,但仍然無法正常工作。 有時會發生奇怪的異常。

有人可以幫我嗎?

你可以嘗試使用CSS選擇器嗎?

String selector = "div.datePickerXtreme input.datePickerXtremeDateOnly";
IWebElement ContractStartDate = driver.FindElement(By.CssSelector(selector));
ContractStartDate.Clear();
ContractStartDate.SendKeys("14/07/2016");

可能是您的問題是,您將首先查找元素,然后檢查其可見性,然后在已發現的element上使用.sendKeys() ,該element可能可見或未有效地存儲到ContractStartDate ,這就是測試用例有時通過但有時失敗的原因。 嘗試如下:-

IWebElement ContractStartDate = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("CTR_StartDate_ctl00")));
ContractStartDate.Click();
ContractStartDate.SendKeys("14/07/2016");

希望它能工作... :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM