2014-01-13 41 views
0

我试图从下拉列表中获取所有选项元素,并在下拉列表中显示每个选项的文本。但文字没有显示。如何获取下拉列表中选项的文本?无法从选择下拉列表中的选项中读取文本

这是我到目前为止已经试过:

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> 

在此先感谢。

回答

0

我用你的代码和它的工作很好。我能够看到文本打印在我的控制台上。你正在使用哪个webdriver版本?我在2.38版上检查过它。

+0

所显示是从属性的 '标题' 文本。而不是选项的文字。 – user3188928

+0

删除'标题'的sysout后尝试。它在我的工作很好。我可以看到在控制台上打印的选项。 – Himanshu

+0

我可否知道您使用的硒版本。我会尝试使用 – user3188928

0

使用下面的代码

 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代码。如果下拉菜单不包含选择标签,则不可能使用选择类。

+0

试过你的代码。仍然没有显示文字。以下是具有select元素的页面的链接:https://www.salesforce.com/form/signup/freetrial-sales.jsp?d=70130000000EqoP&internal=true – user3188928

+0

您可以粘贴html吗?将有助于找出是否有任何改变。另外浏览器和硒版本。 – Vinay

+0

Selenium-java-2.39.0和Firefox 26.0 – user3188928

0

尝试:

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(); 
+0

试过了你提出的两个选项。它仍然不起作用。 – user3188928

相关问题