Java 如何使用selenium WebDriver按字段标签对字段执行
我将如何使用java对单选按钮/复选框/下拉列表等对象执行其标签。我将制作一个通用代码,该代码假定适用于所有页面的HTML结构。因此,我需要使用单选按钮/复选框/下拉列表的标签。我可以在上面的所有对象上执行,但这是特定于页面的 我需要让逻辑像Java 如何使用selenium WebDriver按字段标签对字段执行,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我将如何使用java对单选按钮/复选框/下拉列表等对象执行其标签。我将制作一个通用代码,该代码假定适用于所有页面的HTML结构。因此,我需要使用单选按钮/复选框/下拉列表的标签。我可以在上面的所有对象上执行,但这是特定于页面的 我需要让逻辑像 If label = "Input from user" then driver.find element("that radio/check box associated with the label").click 是否有任何api
If label = "Input from user"
then
driver.find element("that radio/check box associated with the label").click
是否有任何api可以在运行时显示所提供的标记xpath的标记值
或者任何其他逻辑/建议也将被高度赞赏以解决这个问题。无论如何,我通过标签深入到确切的对象,并完成了我的工作。像这样的
String label=driver.findElement(By.xpath("")).getText() ;
if(!label.isEmpty()){
//click
}
WebElement label = driver.findElement(By.xpath("xpath"));
WebElement parentOfLabel = label.findElement(By.xpath("parent::*"));
WebElement myObject = parentOfLabel.findElement(By.xpath("*//input[@id='abc']"));
myObject.sendKeys("found");
向下钻取是从父节点到子节点的最佳策略,这样您就不会使用任何错误的节点。无论如何,我通过标签向下钻取到确切的对象,并执行了我的工作。像这样的
WebElement label = driver.findElement(By.xpath("xpath"));
WebElement parentOfLabel = label.findElement(By.xpath("parent::*"));
WebElement myObject = parentOfLabel.findElement(By.xpath("*//input[@id='abc']"));
myObject.sendKeys("found");
向下钻取是从父节点到子节点的最佳策略,这样您就不会使用任何错误的节点。谢谢您的评论,但它不适用于我的情况,因为每个对象都有一个标签,因此您的代码将单击每个对象。我需要从用户输入中获取标签名称。并且必须与当前标签匹配。如果标签是数学的,那么它将在与同一父标签下的标签标签同级的特定输入元素上执行。那么,有什么方法可以得到标签标签的兄弟或近邻标签吗???您可以这样做:)尝试下载xpath checker和firebug它将帮助您获得注释,但它不适用于我的案例,因为每个对象都有一个标签,因此您的代码将单击每个对象。我需要从用户输入中获取标签名称。并且必须与当前标签匹配。如果标签是数学的,那么它将在与同一父标签下的标签标签同级的特定输入元素上执行。那么,有什么方法可以得到标签标签的兄弟或近邻标签吗???您可以这样做:)尝试下载xpath checker和firebug。这将有助于您的EChard,此代码将单击标签而不是元素。这不能解决问题。@Rechard,此代码将单击标签而不是元素。这并不能解决问题。让我更清楚一点,假设我有一个部分标记为“性别”。在这个标签下面有两个单选按钮,分别是“男”和“女”。听说我要把用户输入的“性别”作为标签,选择的是“男性”。现在,我的代码需要首先搜索标签“性别”,并相应地单击页面中“性别”标签的“男性”(如果匹配)。这只是一个例子而已。那么,除了直接选择男性或女性外,还有其他建议吗?请注意,此代码将单击标签而不是元素。这不能解决问题。@Rechard,此代码将单击标签而不是元素。这并不能解决问题。让我更清楚一点,假设我有一个部分标记为“性别”。在这个标签下面有两个单选按钮,分别是“男”和“女”。听说我要把用户输入的“性别”作为标签,选择的是“男性”。现在,我的代码需要首先搜索标签“性别”,并相应地单击页面中“性别”标签的“男性”(如果匹配)。这只是一个例子而已。那么,除了直接选择男性或女性,还有其他建议吗?