无法选择下拉选项(selenide / java)

时间:2017-02-09 07:13:49

标签: java select automated-tests dropdown selenide

使用selenide(java)从下拉列表中选择选项时遇到一些问题。

以下是HTML代码的一小部分,我尝试按值选择选项:

HTML snippet

[Java code]

    String dateRangeSearchFor = "YESTERDAY";
    ElementsCollection ListOfOptions = $(By.id("searchMaskForm:jobSearch_dateRange_input")).$$(By.tagName("option"));
    logger.info("selecting option");
    for (SelenideElement listElement : ListOfOptions)
    {
        String valueOfElement = listElement.getAttribute("value");
        if (valueOfElement.equals(dateRangeSearchFor))
        {
            //$(By.xpath("//*[@id='searchMaskForm:jobSearch_dateRange_input']/option[contains(., '"+dateRangeSearchFor+"')]")).setSelected(true);

            listElement.setSelected(true); break;

        }
    }

由于某种原因,代码无效,无论是文本还是索引。有什么建议吗?

修改:.click();selectOption();无效

4 个答案:

答案 0 :(得分:1)

SelenideElement有方法selectOptionByValue(java.lang.String... value)

答案 1 :(得分:1)

Selenide提供以下用于在下拉列表中选择选项的方法。

  • selectOptionByValue(值)
  • selectOption(文本)
  • selectOption(索引)
  • selectOptionContainingText(text)

答案 2 :(得分:0)

下面的代码将有助于:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        // create a new cell if needed or reuse an old one
        let cell:HomeTableViewCell = self.tableView.dequeueReusableCell(withIdentifier: "Cell") as! HomeTableViewCell!
        //  let  image : UIImageView = cell.contentView.viewWithTag(2) as! UIImageView
        let gradient: CAGradientLayer = CAGradientLayer()
        gradient.frame = cell.bgView.bounds
        gradient.colors = [UIColor (colorLiteralRed: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 0.3), UIColor(red:0.51, green:0.53, blue:0.53, alpha:0.3)].map { $0.cgColor }
        gradient.locations = [0.0,1.0]
        cell.bgView?.layer.insertSublayer(gradient, at: 0)
        cell.layoutIfNeeded()
        cell.selectionStyle = UITableViewCellSelectionStyle.none
        return cell
    }

就我而言,确实如此。

顺便说一句,如果你正在创建的自动化测试套件是自动化的一部分,包括功能和负载测试,这个链接将帮助你在一个系统中组合这些工具,检查出来 - {{3} }。

答案 3 :(得分:0)

如果您知道下拉菜单中元素的索引,那么您可以使用内置的方法 selectOption()

它看起来像这样:

$(CSS-selector).selectOption(index-of-element);

!!提醒:CS​​S 选择器必须指向 HTML 中的 <select> 元素。