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)
您需要获取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)