2

我有一个搜索框(<input>元素),我尝试通过写入其中的文本来获取元素。

我尝试做下一个:

// input [@value= "my text"] 

但它不起作用(只是为了清楚 - 值不是输入元素的属性。准确地说,当我检查元素时,我看不到这个文本框中写的文本)。

<div class="EwdOOOOO">
 <div class="GOOOEOOO">Hello </div> 
 <input type="text" class="GOBLEOOO"> 
</div>

和我放的座位盒:

"How are you?"

您可以看到"How are you?"在 DOM 中找不到它。

谢谢。

4

2 回答 2

5

你确定得到你的输入并填充它吗?

喜欢 :

WebElement input = driver.findElement(By.xpath("//input[@class='GOBLEOOO']"));
input.sendKeys("How are you?");

所以你可以得到你的元素:

WebElement inputByValue = driver.findElement(By.xpath("//input[@value='my text']"));

或者你有另一种方法来做到这一点

WebElement inputByValue= driver.findElement(By.xpath("//input[contains(@value,'my text')]"));

contains()@value如果您的属性值包含下一个参数(字符串),则返回 true

因为在你输入值之后 总是有一个value attributein 。这里有更多的输入规范。input


如果您想找到具有您在输入字段中键入的值的元素,您可以使用此 xpath。

// you get the value you typed in the input
String myValue = driver.findElement(By.xpath("//input[@class='GOBLEOOO']")).getAttribute("value"); 

//you get a element that contains myValue into his attributes
WebElement element = driver.findElement(By.xpath("//*[contains(@id ,myValue) or contains(@value, myValue) or contains(@name, myValue)]"));
于 2013-04-23T08:23:08.713 回答
0

在这里查看我的答案。有时,您设置的文本值被分配为文本框的“值”属性而不是“文本”

WebElement input = driver.findElement(By.cssSelector("input[type='text']"));
input.sendKeys(enteredValue)
String retrievedText = input.getAttribute("value");
if(retrievedText.equals(enteredValue)){
 //do stuff
}
于 2013-04-23T19:40:26.277 回答