无法从Selenium中的保管箱列表中选择值

时间:2016-03-03 13:27:18

标签: c# selenium selenium-webdriver chrome-web-driver

我试图从保管箱中选择一个值。我尝试使用XPathID,但似乎无法联系到它

这就是我试过的

var mySelectElm4 = driver.FindElement(By.Id("ddlCountryOfBirth"));
var mySelect4 = new SelectElement(mySelectElm4);
mySelect4.SelectByText("Togo");

这就是html

<div class="form-object">
  <span class="error-star"></span>
  <div class="field-description input-placeholder styled field-description-show">Country of birth</div>
  <div class="field field-select">
    <select name="ctl00$plcMainArea$ddlCountryOfBirth" class="field-data selectCustom watermark hasValue" validate="validate" data-rule-required="true" data-msg-required="This field is required." placeholder="Country of birth" id="ddlCountryOfBirth">
      <option value="AF">Thailand</option>
      <option value="BS">The Bahamas</option>
      <option value="GM">The Gambia</option>
      <option value="TG">Togo</option>
      <option value="TK">Tokelau</option>
      <option value="TO">Zambia</option>
      <option value="ZW">Zimbabwe</option>
    </select>
    <span class="selectCustomBox">
      <span class="selectCustomBoxInner">Afghanistan</span>
    </span>
  </div>
  <div id="ddlCountryOfBirth_e" class="error-message"></div>
  <div class="clearfix"></div>
</div>

2 个答案:

答案 0 :(得分:0)

试一试:

public void SelectIn(By by, string value)
{
    //code here to wait the element be displayed

    //after, the method will select the dropdown with the wanted value
    var dropDownListBox = _driver.FindElement(by);
    var clickThis = new SelectElement(dropDownListBox);
    clickThis.Options.First(o => 
        o.GetAttribute("id") == value || 
        o.Text.Equals(value) || 
        o.GetAttribute("value") == value)
    .Click();
}

答案 1 :(得分:0)

尝试按值选择

var mySelectElm4 = driver.FindElement(By.Id("ddlCountryOfBirth"));
var mySelect4 = new SelectElement(mySelectElm4);
mySelect4.SelectByValue("TG");