Selenium C#:如何从输入元素中提取值
我想从AGX9单声道定价字段中提取3745的值,以便将其添加到数据表中。然而,input.Text是空的,我在这个页面的HTML中没有看到3745的实际值 以下是此输入元素的HTML:Selenium C#:如何从输入元素中提取值,c#,selenium,selenium-webdriver,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'"> <
<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>
您需要获取
值
属性
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);
}
非常好用,谢谢!我在上面输入了一个错误,双耳值应该保存到dr[2]中。当AngularJS作为应用程序开发的一部分实现时,
Text
属性不起作用,我们需要获取该控件的属性value
(HTML具有ng XXXX
属性)
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);
}