-2

I am not able to enter the data in numeric field, it is giving the error message as "Element must not be hidden, disabled or read-only".

Please find the code below:

driver.findElement(By.name(OR.getProperty("txtDealerName_ID"))).sendKeys(AccName+"_"+r[1]);
driver.findElement(By.name(OR.getProperty("txtDealerAddress_ID"))).sendKeys("126 - City Cross");
String dealZipID = OR.getProperty("txtDealerZip_ID"); 
WebElement dealZipInput = driver.findElement(By.id(dealZipID));
dealZipInput.clear(); 
dealZipInput.sendKeys(String.valueOf(79081));
dealZipInput = driver.findElement(By.id(dealZipID));*/
new Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("txtDealerZip_ID"))), "").perform();
Thread.sleep(3000);

Please find the error message displayed below:

FAILED: Dealers
org.openqa.selenium.InvalidElementStateException: Element must not be hidden, disabled or read-only (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 63 milliseconds
Build info: version: '2.21.0', revision: '16552', time: '2012-04-11 19:08:38'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_15'
Driver info: driver.version: RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:175)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:128)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:459)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:245)
at org.openqa.selenium.remote.RemoteWebElement.clear(RemoteWebElement.java:112)
at com.ode.Admin.Dealer_Admin.Dealers(Dealer_Admin.java:114)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:128)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1203)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1128)
at org.testng.TestNG.run(TestNG.java:1036)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)

Relevant HTML Code:

<table id="Table2" width="100%" height="27" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td background="Common/Images/table2_01.gif">  </td>
<td width="98%" bgcolor="#f3f9fd">
<table width="100%" cellspacing="1" cellpadding="1" border="0">
<tbody>
<tr>
<td>
<table width="95%" cellspacing="0" cellpadding="4" border="0">
<tbody>
<tr width="50%">
<tr width="55%">
<tr>
<td>
<table class="text" width="58%" cellspacing="0" cellpadding="1" border="0">
<tbody>
<tr>
<tr>
<td valign="baseline">
<input id="ctl00_MasterPlaceHolder_TxtZip" type="hidden" value=""    name="ctl00$MasterPlaceHolder$TxtZip">
<input id="ctl00_MasterPlaceHolder_TxtZip_p" type="hidden"   name="ctl00_MasterPlaceHolder_TxtZip_p" value="">
<input id="igtxtctl00_MasterPlaceHolder_TxtZip" class="form" type="text" onkeypress="javascript:IsNumeric()" style="" editid="ctl00_MasterPlaceHolder_TxtZip">
</td>
<td valign="top">
<td width="30%" valign="baseline">
<td valign="top">
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<tr>
</tbody>
</table>

Please help me out in this issues. Help will be appreciated.

4

2 回答 2

0

尝试这个

WebElement dealZipInput = driver.findElement(By.id(dealZipID));
dealZipInput.click(); 
dealZipInput.sendKeys(String.valueOf(79081));
dealZipInput.sendKeys(Keys.TAB);
于 2014-04-15T15:28:12.973 回答
-1

您需要先启用该元素,然后再在其中输入数据。WebDriver不允许在隐藏元素中输入数据。

于 2013-02-26T16:23:27.203 回答