Xpath/按文本搜索输入节点

标签 xpath webdriver selenium-webdriver

我有一个搜索框( <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 中找不到。

谢谢。

最佳答案

您确定获取输入并填充它吗?

喜欢:

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

因为自从您输入值后,input 中始终存在一个value 属性Here for more Input specs.


如果您想查找具有您在输入字段中键入的值的元素,您可以使用此 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)]"));

关于Xpath/按文本搜索输入节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16164334/

相关文章:

java - WebDriver 等待网站完全加载

java - Selenium 工具提示文本验证

java - 是否可以将 chrome webdriver 文件设置为 URL?

java - 关于使用 Saxon 对具有默认命名空间的 xml 进行 xpath 解析

java - 使用 xpath 从 xml 中提取所有标签

javascript - xpath 选择一个属性值,其中另一个属性是谓词

java - Selenium WebDriver By.xpath 不能一直工作

selenium-webdriver - Java Selenium-webdriver : Enter the text into the text area

java - 部署到不同机器时如何使用selenium/standalone-chrome?

java - XPath//*[@href] 不仅仅抓取链接