找出使用Selenium选择的单选按钮(实现为li)

时间:2017-11-05 21:05:12

标签: java selenium xpath selenium-webdriver css-selectors

我有以下HTML。这是一个带3个单选按钮的小窗口。它实现为具有3个li元素的ul。下面代码点击li里面的div并选择单选按钮:

WebElement v = driver.findElement(By.xpath("/html/body/div[4]/div/div[2]/div/div[1]/div[2]/ul/li[2]/div[1]"));
JavascriptExecutor jsb = (JavascriptExecutor) driver;
jsb.executeScript("arguments[0].click();", v);

如何找出点击三个单选按钮中的哪一个?我想再次打开这个屏幕,并能够分辨出哪个单选按钮被选中。

HTML[![][1]] 2

2 个答案:

答案 0 :(得分:0)

您的问题中没有很多信息。我可以假设感兴趣的html图像是" none"被选中。如果您注意到,当选择单选按钮时,班级名称为 "icon icon-dot-circle-o"

否则,班级名称为" icon icon-circle-o"。

您可以使用此信息来了解选择了哪个按钮。

答案 1 :(得分:0)

查看您分享的HTML,很明显最初都没有选择radio button。因此,您的第一个问题How do I find out which of the three radio button is clicked?似乎不是一个有效的问题。我们应该能够选择/点击我们可以使用的radio buttonSelenium中的任意/全部。

现在,一旦选择了单选按钮,如果您要求验证是否选择了正确的radio button,则可以使用以下代码块:

    List<WebElement> radio_options = driver.findElements(By.xpath("//div[@class='rc-diolog-body']//ul/li/div[not(@class='icon icon-dot-circle-o')]"));
    for(WebElement option:radio_options)
        {
            if(option.isSelected())
            {
                System.out.println(option.getAttribute("innerHTML"));
                break;
            }
        }