无法从“选择”下拉列表中的选项读取文本



我正在尝试从下拉列表中获取所有选项元素,并在下拉列表中显示每个选项的文本。但是文本没有显示。如何获取下拉列表中选项的文本?

这是我到目前为止尝试过的:

 WebDriver d = new FirefoxDriver();
 d.navigate().to("https://www.salesforce.com/form/signup/freetrial-sales.jsp?d=70130000000EqoP&internal=true");
 Select s = new Select(d.findElement(By.id("CompanyEmployees")));
 List<WebElement> options = s.getOptions();
 for(WebElement option : options){
   System.out.println(option.getAttribute("title"));
   System.out.println(option.getText());
 }

这是 HTML:

    <li class=" type-select">
        <div class="control-container ">
        <div class="label">
                <span class="required-marker">*</span>
            <label for="CompanyEmployees" id="CompanyEmployees_lbl">Employees</label>
        </div>
          <div class="field">
        <select name="CompanyEmployees" id="CompanyEmployees">
             <option value="">Employees</option>
                                                        <option value="3" title="1 - 5 employees">1 - 5 employees</option>
            <option value="12" title="6 - 20 employees">6 - 20 employees</option>
            <option value="50" title="21 - 100 employees">21 - 100 employees</option>
            <option value="250" title="101 - 500 employees">101 - 500 employees</option>
            <option value="2000" title="501 - 3,500 employees">501 - 3,500 employees</option>
            <option value="3500" title="3,501+ employees">3,501+ employees</option>
            </select>
</div>
    <div class="info">
        <label for="CompanyEmployees__c" id="CompanyEmployees_lel">Select the number of employees</label>
                <img src="https://secure2.sfdcstatic.com/common/assets/images/error-icon.png" alt="" border="0">
    </div>
</div></li>

提前谢谢。

我使用了你的代码,它工作正常。我能够看到文本正在我的控制台上打印。您使用的是哪个 Web 驱动程序版本?我在 2.38 版上检查了它。

使用以下代码

        Select sel = new Select(element);
        List<WebElement> list =  sel.getOptions();
        for(int i=0;i<list.size(); i++)
        {
            System.out.println(list.get(i).getText());
        }

如果可能的话,也发布 html 代码。如果下拉列表不包含选择标记,则无法使用选择类。

尝试:

List<WebElement> elements = driver.findElements(By.xpath("//select[@id='CompanyEmployees']//option"));
for (WebElement element : elements) {
        element.getText();
    }

或:

WebElement yourSelect = driver.findElement(By.id("CompanyEmployees"));
List<WebElement> elements = new Select(yourSelect).getOptions();
for (WebElement element : elements) {
    element.getText();
}

如何获取选择选项文本:

WebElement yourSelect = driver.findElement(By.id("CompanyEmployees"));
String text = new Select(yourSelect ).getFirstSelectedOption().getText();

最新更新