Java 按标签搜索

Java 按标签搜索,java,selenium,Java,Selenium,我正在从事一个自动化项目,我的问题很清楚: 我的主管希望我通过标签名来定位元素,而不是通过(xpath和id)查找元素: 例如: 使用者 使用者 您对客户端的唯一用户名 用户只会告诉我将用户名“xxx”放入标签“user”中,我必须找到该标签的输入。 请问有路吗?在selenium中查找给定标签的输入?(我正在使用java)这在自动化中非常常见。您可以根据输入字段的标签定位输入字段。您可以将以下逻辑应用于大多数字段 这是用Python编写的。 myinput = driver.find_e

我正在从事一个自动化项目,我的问题很清楚: 我的主管希望我通过标签名来定位元素,而不是通过(xpath和id)查找元素: 例如: 使用者


使用者
您对客户端的唯一用户名

用户只会告诉我将用户名“xxx”放入标签“user”中,我必须找到该标签的输入。
请问有路吗?在selenium中查找给定标签的输入?(我正在使用java)

这在自动化中非常常见。您可以根据输入字段的标签定位输入字段。您可以将以下逻辑应用于大多数字段

这是用Python编写的。

myinput = driver.find_element_by_xpath("//label[contains(text(),'User')]/following::input[1]")
myinput.send_keys("you text")

通过文本查找标签,获取第一个父级div,并在div中获取输入

//label[.='User']/ancestor::div[1]/input
//div[./label[.='User']]/input
与上一步相同,删除标签文本中的空格

//label[normalize-space(.)='User']/ancestor::div[1]/input
通过文本查找带有子标签的div,并在div中获得输入

//label[.='User']/ancestor::div[1]/input
//div[./label[.='User']]/input

如果要通过包含在另一个元素中的文本来定位一个元素,则必须使用XPath。。。没有别的办法。你试过什么?你的代码或定位尝试在哪里?谢谢,它成功了,但我在我的项目中遇到了一个最大的问题,自从2个月以来我一直找不到解决方案,看,我的项目是一个机器人自动化系统,应该可以在任何网站上运行,这个问题我需要开发一个功能“SearchInFrames”,它应该可以查看网页的所有框架,找到我要找的元素。但是一个网页可以包含无限多的帧(frame1,Frame2,frame3…),每个帧可以包含另一个帧(frame1.1,frame1.2…),所以我需要一个递归方法,可以查看所有帧,直到找到元素。如果这个答案或任何其他答案解决了您的问题,您可以将答案升级并将其标记为已接受,谢谢,它成功了,但我遇到了我的项目中最大的问题,我找不到一个解决方案,因为2个月,看我的项目是一个机器人自动化,应该在任何网站上工作,这个问题我需要开发一个功能“SearchInFrames”,该功能应该可以查看网页的所有框架,并找到我正在寻找的元素。但是一个网页可以包含无限多的帧(frame1,Frame2,frame3…),而每个帧可以包含另一个帧(frame1.1,frame1.2…),因此我需要一个递归方法,它可以查看所有帧,直到找到元素为止