Selenium C#:如何从输入元素中提取值

Mat*_*ttJ 3 c# selenium selenium-webdriver

我想从 AGX9 单声道定价字段中提取 3745 的值,以便将其添加到数据表中。但是 input.Text 变为空,我在此页面的 HTML 中没有看到 3745 的实际值。

在此处输入图片说明

这是此输入元素的 HTML:

<td class="monaural" ng-class="{'has-error' : vm.pricingForm[i].$invalid && vm.pricingForm[i].$dirty}" ng-init="i = ha + 'Monaural'">
    <span class="caption caption-currency">$</span>
    <input class="form-control price-control ng-pristine ng-valid ng-valid-required ng-valid-pattern ng-touched" type="text" required="" ng-pattern="/^[0-9]{3,5}(\.[0-9]{2})?$/" ng-model="vm.data[2][i].value" name="agx9Monaural">
</td>
Run Code Online (Sandbox Code Playgroud)

这是我用来尝试将标签、单声道和双声道价格添加到数据表的代码。

        foreach (IWebElement row in rows)
        {
            var inputFields = row.FindElements(By.TagName("input"));

            //monoaural add to dataTableRow
            dr[1] = inputFields[0].Text;

            //binaural add to dataTableRow
            dr[2] = inputFields[1].Text;

            actualDataTable.Rows.Add(dr);
        }
Run Code Online (Sandbox Code Playgroud)

Sai*_*fur 5

您需要获取value属性

string value = Driver.FindElement(By.Name("agx9Monaural")).GetAttribute("value");
Run Code Online (Sandbox Code Playgroud)

应该做

在你的情况下,这将是

foreach (IWebElement row in rows)
{
    var inputFields = row.FindElements(By.TagName("input"));

    //monoaural add to dataTableRow
    dr[1] = inputFields[0].GetAttribute("value");

    //binaural add to dataTableRow
    dr[2] = inputFields[1].GetAttribute("value");

    actualDataTable.Rows.Add(dr);
}
Run Code Online (Sandbox Code Playgroud)