【问题标题】:How do I click on radio button with dynamic input using selenium?如何使用硒单击具有动态输入的单选按钮?
【发布时间】:2021-12-06 23:11:19
【问题描述】:

我希望能够通过参数输入值来点击“男性”或“女性”选项

public void enter_gender_as(String gender) {

       
WebElement g = driver.findElement(By.cssSelector("input[value=(gender)]"));
g.click();
}

HTML snippet

【问题讨论】:

  • 如果这些答案之一对您有帮助,请选择一个。

标签: java selenium selenium-webdriver cucumber cucumber-java


【解决方案1】:

你明白了,只需像这样编写代码:

public void enter_gender_as(String gender) {
WebElement g = driver.findElement(By.cssSelector("input[value=(" + gender + ")]"));
g.click();
}

然后正确调用:

enter_gender_as("Male");

如果你想花哨的话,你可以输入ifs 来检查值是不是MaleFemale。你可以制作gender.toLowerCase()。您可以添加显式等待,例如 ExpectedCondition 以等待元素加载。但这是基本功能。 下面是一个“花哨”的例子:

public void enter_gender_as(String gender) {
if(!gender.equalsIgnoreCase("Male") && !gender.equalsIgnoreCase("Female")){
System.out.println("Not a valid value! Please enter Male or Female");
}
WebElement g = driver.findElement(By.cssSelector("input[value=(" + gender.toLowerCase + ")]"));
new WebDriverWait(driver, [int for timeout]).until(ExpectedConditions.visibilityOf(g));

g.click();
}

【讨论】:

  • .equalsIgnoreCase 我不知道。一个人每天都在学习:-)
  • 我知道对吗?我喜欢那种找到新方法的感觉!很高兴我能够帮助您展示一些新的东西!
【解决方案2】:

方法:

public static void selectRadioButtonByValue(List<WebElement> radioButtons, String value) {
    for (WebElement radioButton: radioButtons) {
        if (radioButton.getAttribute("value").toLowerCase().equals(value.toLowerCase())) {
            radioButton.click();
            break;
        }
    }
}

用法:

List<WebElement> radioButtons = driver.findElements(By.id("gender"));
selectRadioButtonByValue(radioButtons, "male");

可选WebDriver driver 作为参数:

public static void selectRadioButtonByValue(WebDriver driver, List<WebElement> radioButtons, String value) {
    for (WebElement radioButton: radioButtons) {
        if (radioButton.getAttribute("value").toLowerCase().equals(value.toLowerCase())) {
            radioButton.click();
            break;
        }
    }
}

selectRadioButtonByValue(driver, radioButtons, "male");

【讨论】:

    猜你喜欢
    • 2021-08-12
    • 2021-12-11
    • 2018-11-02
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2021-12-08
    相关资源
    最近更新 更多