我想从AGX9单声道定价字段中提取3745的值,以便将其添加到DataTable中。但是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>
以下是我用来尝试将标签,单声道和双耳价格添加到DataTable的代码。
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);
}
答案 0 :(得分:4)
您需要获取value
属性
string value = Driver.FindElement(By.Name("agx9Monaural")).GetAttribute("value");
应该这样做
在你的情况下,它将是
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);
}