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 回答