2017-07-31 4 views
0

無効な値の属性を持たない入力タイプのテキストがあります。Selenium C# - 値のない属性が無効なテキストフィールドの値を取得する方法

<div class="col-md-4"> 
    <!-- ko if: HierarchyId() != SystemHierarchy.Store --> 
    <input type="text" class="form-control" data-bind="disable: HierarchyId() == SystemHierarchy.Enterprise || IsAccessible() === false, value: ShortName" disabled=""> 
    <!-- /ko --> 
    <!-- ko if: HierarchyId() == SystemHierarchy.Store --><!-- /ko --> 
</div> 

UIでは、この入力フィールドにデフォルトの無効な値、たとえば '429'が設定されています。私はこの値429が必要ですが、値属性がないので取り出すことができません。

+0

をrefer-、あなたの現在のロジックのいくつかのコード例を提供することはできますか? また、バインディングイベントの後に要素をフェッチする必要があります。さもなければ、その値と他の束縛された特性はフェッチされません。 – Rostech

+0

私はelement.getAttribute( "innerHTML")を試しましたが、空白を返します –

+0

完全なマークアップを '429'と書き込んでください。理想的には、周囲のHTMLマークアップはこの値をどこかに含みます。 –

答えて

0

あなたのHTMLはKnockout JSを使って値をバインドしていると思います。要素テキストは、要素のXpathを使用して見つけることができます。

driver.findElement(By.xpath("//input[contains(@class, 'form-control') and contains(@data-bind, 'disable: HierarchyId')]")]").Text; 

注:要素の最も近いxpathを使用しようとしました。これを試して、必要に応じてXpathを変更する必要があります。

また http://geekswithblogs.net/Aligned/archive/2014/07/09/use-selenium-to-find-elements-by-knockoutrsquos-data-bind.aspx Find Elements by data-bind [Findsby] https://sqa.stackexchange.com/questions/10342/how-to-find-element-using-contains-in-xpath

関連する問題