0

私は読み取り専用フォームを使用しており、それを使用してコントローラーにロードしています

"popup.down('form').loadRecord(record);"

フォーム フィールドは次のように定義されます。

items:[
{
  xtype:'textfield',
  fieldLabel:'Array Id',
  name:'id'
},
{
  xtype:'textfield',
  fieldLabel:'Array Name',
  name:'name'
}
]

値:[ id:10, name: 'testing']

生成された HTML コードは次のとおりです。

<form id = 'arraydevicewindowid'>

  <input type="text" autocomplete="off" class="x-form-field x-form-text" size="20"     name="${array.arrayName}" id="ext-gen1314" readonly="" aria-readonly="true" aria-invalid="false" placeholder="--NA--" role="textbox" aria-describedby="textfield-1260-errorEl" aria-required="false" data-errorqtip="" style="width: 281px; height: 23px;">

</form>

次のxpathを使用して、Extjsによって生成されたテキストフィールドコンポーネントから値を選択しようとしました:

(//div[@id='arraydevicewindowid']//input)[1]//@value

しかし、運がありません。

(//div[@id='arraydevicewindowid']//input)[1]

必要なテキストフィールドを選択できますが、機能@valueしません。

何か案が?

4

1 に答える 1

1

問題は、Selenium が HTML 要素以外を返す XPath を処理できないことです。しかし、value属性 ... はノードの属性であり、XPath は基本的に文字列を返します。したがって、適切な要素を選択し、Selenium の組み込みメソッドを使用してその値を取得する必要があります。

Selenium IDE の使用: storeValue.

Java + Selenium RC の使用:

// assuming 'selenium' is a healthy instance of Selenium
String value = selenium.getValue("xpath=yourXpath");

Java + Selenium WebDriver の使用:

// assuming 'driver' is a healthy instance of WebDriver
String value = driver.findElement(By.xpath('yourXpath')).getAttribute("value");
于 2012-06-03T08:47:23.633 に答える