我使用只读表单并使用
将其加载到控制器中"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
不起作用。
有什么想法吗?
答案 0 :(得分:1)
问题是Selenium无法使用XPath返回HTML元素以外的任何内容。但value
属性...是节点的属性,XPath本质上返回一个String。因此,您必须选择正确的元素,然后使用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");