2011-08-26 62 views
1

我一直在这个晚上一直在墙上打我的头,有人可以给我一些想法,我怎么能WatiN到TypeText到这个文本框?直到选择了一个单选按钮是禁用,我很茫然..我还是有点新的这一切去容易对我WatiN无法通过ID或名称找到文本框

<TR> 
    <TD WIDTH="100">Billing ID</TD> 
    <TD nowrap> 
     <INPUT TYPE="radio" NAME="reg_type" VALUE="Biller" ONCLICK="disableSubmitter(); clearAll(); document.config_frmV_f5a46cc226670cb3a4d7e0f5a98703a0.vendor_ID.disabled=false;"> 
     <B>Vendor ID:</B> 
    </TD> 
    <TD WIDTH="100"><INPUT TYPE="textbox" SIZE="10" NAME="vendor_ID" ID="vendor_ID" DISABLED ONBLUR='setupAjax();' value=""></TD> 
</TR> 
<TR> 
    <TD>Submitter ID</TD> 
    <TD nowrap> 
     <INPUT TYPE="radio" NAME="reg_type" VALUE="Submitter" ONCLICK="disableBiller(); clearAll(); document.config_frmV_f5a46cc226670cb3a4d7e0f5a98703a0.existing_Billing_ID.disabled=false;"> 
     <B>Billing ID:</B> 
    </TD> 
    <TD WIDTH="100"> 
     <INPUT TYPE="textbox" SIZE="10" NAME="existing_Billing_ID" ID="existing_Billing_ID" DISABLED ONBLUR='setupAjax();' value=""></TD> 
    <TD><INPUT TYPE="hidden" NAME="ff_option" VALUE="N"></TD> 
</TR> 

这里是JavaScript的命令的onblur启用文本框

function setupAjax() 
{ 
    var sendStr = ""; 

    if(document.config_frmV_f5a46cc226670cb3a4d7e0f5a98703a0.reg_type[1].checked && document.config_frmV_f5a46cc226670cb3a4d7e0f5a98703a0.vendor_ID.value.length > 0) 
    { 
     document.config_frmV_f5a46cc226670cb3a4d7e0f5a98703a0.existing_Billing_ID.value = ""; 
     sendStr += 'reset=false&vendor_ID=' + document.config_frmV_f5a46cc226670cb3a4d7e0f5a98703a0.vendor_ID.value; 
     sendStr += '&existing_Billing_ID='; 

    } 
    else if (document.config_frmV_f5a46cc226670cb3a4d7e0f5a98703a0.reg_type[2].checked && document.config_frmV_f5a46cc226670cb3a4d7e0f5a98703a0.existing_Billing_ID.value.length > 0) 
    { 
     document.config_frmV_f5a46cc226670cb3a4d7e0f5a98703a0.vendor_ID.value = ""; 
     sendStr += 'reset=false&existing_Billing_ID=' + document.config_frmV_f5a46cc226670cb3a4d7e0f5a98703a0.existing_Billing_ID.value; 
     sendStr += '&vendor_ID='; 
    } 
    else 
    { 
     return; 
    } 

我曾尝试通过ID,姓名,指数选择,你的名字,我仍然无法尽管我能触摸到每个页面上的其他元素来填充它..我可以用找到它该元素,它会报告名称,但我不知道如何使用元素填充该框

+1

这不是Java,这是JavaScript。 Java对于JavaScript来说就像汽车的地毯一样。 – Esko

回答

3

周围想通工作出了问题,通过使用JavaScript,现在就像一个魅力!

  StringBuilder js = new StringBuilder(); 
      js.Append(@"var myTextField = document.getElementById('vendor_ID');"); 
      js.Append(@"myTextField.setAttribute('value', '201153');"); 
      ie.RunScript(js.ToString()); 
+0

马克,这太棒了!一个伟大的解决方案,打开了我的眼睛的RunScript的力量。干杯! –

0

问题:您是否尝试在文本框禁用时输入值?

在启用TextField之前,您不会(或者至少不应该)能够像mybrowser.TextField(“myFieldID”),TypeText(“words goes here”)这样做。

  1. 单击单选按钮
  2. 等待文本框变成启用
  3. 中输入文字的文本框
+0

不应该启用它,一旦单击按钮单击它就会停止并最终崩溃。我甚至在执行TypeText命令之前放置了一个Thread.Sleep(5000),并确保它在睡眠时仍未被禁用,我可以输入该字段。我完全被绊倒了吗? – markm123

相关问题