列表中的值与我的字符串不匹配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表中的值与我的字符串不匹配相关的知识,希望对你有一定的参考价值。

我正在尝试从以下代码中为一个州选择一个自动完成下拉列表,但观察到以下问题。

  1. 我已要求选择value =“ United States”,但其选择了阿尔巴尼亚
  2. 它引发陈旧元素异常。

我不知道发生了什么。

void selectFromDropdown(WebElement webName, String valtoSelect){
        WebElement dropdown = webName;
        dropdown.click(); // assuming you have to click the "dropdown" to open it
        List<WebElement> options = dropdown.findElements(By.tagName("li"));
            for (WebElement option : options)
            {
                if (option.getText().equals(valtoSelect))
                {
                    option.click(); // click the desired option
                }
                break;
            }
        }

enter image description here

答案

如果这些选项在html中可用,则可以通过以下三种方式从下拉菜单中选择一项:

@Test(testName = "select by tekst")
public void selectByVisibleTekst(){
    WebElement country= driver.findElement(By.xpath("locatorValue"));
    new Select(country).selectByVisibleText("tekstToSelect");
}

@Test(testName = "select by value")
public void selectByValue(){
    WebElement country= driver.findElement(By.xpath("locatorValue"));
    new Select(country).selectByValue("valueToSelect");
}

@Test(testName = "select by index")
public void selectByIndex(){
    WebElement country= driver.findElement(By.xpath("locatorValue"));
    new Select(country).selectByIndex(valueOfIndex);
}
另一答案

如果下拉列表确实是一个选择框,则下面的代码应该起作用

void selectFromDropdown(WebElement webName, String valtoSelect){
    Select select = new Select(webName)));
    select.selectByVisibleText(valtoSelect);
    // or maybe select.selectByValue(valtoSelect); depending how you setup the dropdown
}

其中选择为org.openqa.selenium.support.ui.Select

以上是关于列表中的值与我的字符串不匹配的主要内容,如果未能解决你的问题,请参考以下文章

如果字符串数组中的列名在字符串数组中具有匹配的值,则获取DataRow

如何将表单输入中的用户 ID 值与数据库中的记录相匹配?

Git 索引和工作树 EOL 值与 .gitattributes 中设置的值不匹配

将数组的值与字符串 PHP 匹配

jQuery - 如果值与数组中的元素匹配,则禁用复选框

在两个列表列表中查找匹配的字符串