代码之家  ›  专栏  ›  技术社区  ›  Bhuvana

如何在下拉列表中选择所选文本

  •  2
  • Bhuvana  · 技术社区  · 6 年前
    **HTML Code**
      <div class="form-group">
            <label class="control-label col-md-4 col-sm-4" for="type-select">Category<span style="color:red">*</span></label>
            <div class="col-md-8 col-sm-8">
                <select defaultattr="4" class="form-control input-style mandatory" data-val="true" data-val-number="The field CategoryID must be a number." id="CategoryID" name="CategoryID"><option value="">--Select--</option>
    <option value="1">Architectural Firm</option>
    <option value="2">Interior Design Firm</option>
    <option value="3">General Contractor</option>
    <option selected="selected" value="4">2tec2 Sales Network</option>
    <option value="5">Cleaning Company</option>
    <option value="6">Commercial end user</option>
    <option value="7">Distribution company</option>
    <option value="8">Hotel Company</option>
    </select>
    

    我希望xpath获得所选的值(这里是上面代码中的第四个选项)。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Shn    6 年前

    您想让xpath获得下拉列表的选定选项吗?

    试试这个xpath: //select[@id='CategoryID']//option[@selected='selected']

    使用GetText()获取所选文本的文本

    String text = driver.findElement(By.xpath(...)).getText();
    
        2
  •  1
  •   Bits Please    6 年前

    除了Shn的回答和你对它的评论。 如果需要从5个类似的下拉列表中获取值,为什么不在每个下拉列表中按Shn运行给定的xpath语句5次(通过更改xpath中的id),并将它们保存在一个数组中

    String textA = driver.findElement(By.xpath(...)).getText();
    String textB = driver.findElement(By.xpath(...)).getText();
    String textC = driver.findElement(By.xpath(...)).getText();
    String textD = driver.findElement(By.xpath(...)).getText();
    String textE = driver.findElement(By.xpath(...)).getText();
    
    String array[] = new String[] { textA, textB, textC, textD, textE };
    

    你也可以使用一个循环。