如何使用硒单击具有动态输入的单选按钮?
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");
如果你想花哨的话,你可以输入if
s 来检查值是不是Male
或Female
。你可以制作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");
【讨论】:
以上是关于如何使用硒单击具有动态输入的单选按钮?的主要内容,如果未能解决你的问题,请参考以下文章