如何从列表框中检索选定的值?

时间:2014-04-23 06:42:43

标签: selenium listbox selenium-webdriver webdriver

HTML内容:

<select id="modalNewUser-body-information-timeZone" class="span12 ng-valid ng-dirty" ng-options="timezone for timezone in timezoneList" ng-model="newUser().timeZone" uid="timeZone" name="timezone">
    <option selected="" value="">-- Select One --</option>
    <option value="0">AST</option>
    <option value="1">EST</option>
    <option value="2">CST</option>
    <option value="3">MST</option>
    <option value="4">PST</option>
    <option value="5">YST</option>
    <option value="6">HST</option>
</select>

假设我选择了&#39; EST&#39;从列表框中如何检索它? 我无法使用getFirstSelectedOption()。getText()

进行检索

选择select = new选择(driver.findElement(By.id(&#34; modalNewUser-body-information-timeZone&#34;))); select.selectByVisibleText(&#34; EST&#34); String timeZone = select.getFirstSelectedOption()。getText();

3 个答案:

答案 0 :(得分:1)

据我了解,只有在实际选择&#39;时才能使用Select元素。标签。通常情况下,看起来像下拉框的东西并不像Select元素那样真实。如果你试图以这种方式获取文本会怎么样(我在这里使用C#,但我相信Java只有不同的大写字母,我相信):

string timeZone = driver.FindElement(By.XPath("//option[@value = '1']")).Text;

预期回报:&#34; EST&#34;

答案 1 :(得分:0)

你可以试试这个:

$("#modalNewUser-body-information-timeZone option:selected").text();

答案 2 :(得分:0)

  

您提供的代码对我来说很好。

您能否请更新您的硒版本并重试?

以下是经过测试的代码:

Select select = new Select(abhiDriver.findElement(By.id("modalNewUser-body-information-timeZone")));
select.selectByVisibleText("EST");
String timeZone = select.getFirstSelectedOption().getText();
System.out.println(timeZone);