0

我正在尝试使用 selenium 测试我的 GWT 应用程序,GWT Textbox 生成的 html 如下所示:

<input type="text" class="gwt-TextBox" >

那里没有价值,但从 UI 我可以看到文本,有没有办法从硒中获取价值?

更新:我可以input从 selenium 中找到它,但无法获取它的值,例如上面的值input是“blahblah ...”,我可以从页面 UI 中看到,但无法从上面的 html 中获取。

4

4 回答 4

1

@Bhumika 是正确的,id对于您想要操作的每个元素都有一个独特的属性是很好的编程习惯。但是,如果您没有它并且无法添加它,那么您仍然可以很好地处理这种特殊情况:placeholder属性。要定位元素,请使用 XPath //input[@placeholder='Input note title...']。要获取字段的值,请获取其value属性。

于 2013-01-06T14:07:58.847 回答
1

就像@BMT 说的那样,你应该使用getAttribute 来获取值,就像这样

GWT 代码

TextBox textField = new TextBox(); 
textField.ensureDebugId("textFieldId");

硒代码

driver.findElement(By.id("textFieldId")).getAttribute("value");

您可以使用浏览器的 Inspect Element Tool (F12) 查看一个元素的所有属性(可见或不可见),然后获取所需的值。

于 2013-08-12T17:03:36.517 回答
0

每个小部件都应该有一个用于硒测试的 id。这里 selenium 不识别元素,您无法获取 UI 上的值。所以你必须为输入小部件设置 id。IE

TextBox textField= new TextBox();    
textField.getElement().setId("name");
于 2013-01-06T12:31:48.097 回答
0

如果您希望生成的 DOM 看起来像

<input type="text" class="gwt-TextBox" value="myValue">

你必须使用

textBox.getElement().setAttribute("value", "myValue");

代替

textBox.setText("myValue")

那是因为setText只会更新value 属性(即theDomElement.value = "myValue"),而不会更新value 属性(即<input value="myValue"/>)。

更新属性时,浏览器不会更新关联的属性。

于 2013-12-02T16:44:10.937 回答