如何使用硒单击具有动态输入的单选按钮?

Posted

技术标签:

【中文标题】如何使用硒单击具有动态输入的单选按钮?【英文标题】: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

【问题讨论】:

如果这些答案之一对您有帮助,请选择一个。 【参考方案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");

【讨论】:

以上是关于如何使用硒单击具有动态输入的单选按钮?的主要内容,如果未能解决你的问题,请参考以下文章

单击提交输入时的单选按钮[关闭]

单击提交后如何获取选定的单选按钮以显示特定的隐藏 div?

如何控制具有外观“按钮”的单选按钮的大小

带有javascript的单选按钮

基于选定的单选按钮选项,在闪亮的R中单击提交按钮后如何显示图表和数据?

从单选按钮输入单击时显示模式