WatiN无法按ID或名称查找文本框

时间:2011-08-26 05:59:03

标签: javascript html ajax watin

我整个晚上一直在墙上敲打我的头,有人能告诉我如何将WatiN转换为TypeText到这个文本框中吗?它被禁用,直到选中了一个单选按钮,我不知所措。我仍然有点新手,对我这么轻松

<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>

以下是启用文本框的onblur命令的JavaScript

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,Name,Index选择你的名字,我仍然无法填充它,尽管我可以触摸页面上的其他所有元素..我能够使用元素找到它,它会报告该名称,但我无法弄清楚如何使用Elements

填充该框

2 个答案:

答案 0 :(得分:3)

通过使用JavaScript来解决问题,现在就像魅力一样!

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

答案 1 :(得分:0)

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

你不会(或者至少不应该)能够做一些像mybrowser.TextField(“myFieldID”)。TypeText(“words go here”),直到启用TextField。

<强>伪代码

  1. 单击单选按钮
  2. 等待文本字段启用
  3. 在文本字段中输入文字