Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用selenium WebDriver按字段标签对字段执行_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java 如何使用selenium WebDriver按字段标签对字段执行

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

我将如何使用java对单选按钮/复选框/下拉列表等对象执行其标签。我将制作一个通用代码,该代码假定适用于所有页面的HTML结构。因此,我需要使用单选按钮/复选框/下拉列表的标签。我可以在上面的所有对象上执行,但这是特定于页面的

我需要让逻辑像

    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,此代码将单击标签而不是元素。这并不能解决问题。让我更清楚一点,假设我有一个部分标记为“性别”。在这个标签下面有两个单选按钮,分别是“男”和“女”。听说我要把用户输入的“性别”作为标签,选择的是“男性”。现在,我的代码需要首先搜索标签“性别”,并相应地单击页面中“性别”标签的“男性”(如果匹配)。这只是一个例子而已。那么,除了直接选择男性或女性,还有其他建议吗?