我想在SeleniumJava中使用IF条件从下拉列表中选择依赖值

我想在SeleniumJava中使用IF条件从下拉列表中选择依赖值,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,当我选择dropdown1时,我想从下拉列表中选择相互依赖的值-它给出一些特定的值,当我选择dropdown2时,它给出一些不同的值,因此使用if条件检查if(dropdown1==x) {选择y} 其他的 {选择一个} public class SelectingRadioButtons { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver",

当我选择dropdown1时,我想从下拉列表中选择相互依赖的值-它给出一些特定的值,当我选择dropdown2时,它给出一些不同的值,因此使用if条件检查if(dropdown1==x) {选择y} 其他的 {选择一个}

public class SelectingRadioButtons {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver",
            "C:\\geckodriver-v0.17.0-win64\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();

        driver.get("http://careerendeavour.com/admission-form/registration-form.php");
        Select dropdown = new Select(driver.findElement(By.xpath(".//*[@id='center']")));
        dropdown.selectByIndex(2);

        Select subcourse = new Select(driver.findElement(By.xpath(".//*[@id='course']")));
        subcourse.selectByValue("Regular Course");

        if (subcourse.equals("Regular Course")) {
            Select dropdown1 =  new Select(driver.findElement(
                By.xpath(".//*[@id='coursetp']")));
            dropdown1.selectByValue("GATE");
        }
    }
}

您可以获得下拉列表的值,如下所示

String selectedcourse = subcourse.getFirstSelectedOption().getText();
然后你比较一下

if (selectedcourse.equals("Regular Course")) { 
    Select dropdown1 = new Select(driver.findElement(By.xpath(".//*[@id='coursetp']"))); 
    dropdown1.selectByValue("GATE");
}

您的测试用例应该知道它是否选择了常规课程。一般来说,您应该避免在测试逻辑中使用类似的
if
语句,以使代码更易于维护、更具可读性,并且不那么脆弱。使用单元测试框架(如junit)提前而不是晚些时候重新设置项目也是值得的,这样您就不会通过
main
方法运行测试。也就是说,您可以获取要单击的课程元素,并检查其值<代码>如果(subCourseElement.getAttribute(“value”).equals(“常规课程”)那么你被困在哪里了?考虑到
subcourse
作为
选择
类的一个实例,它将只对选择选项起作用。谢谢