0

Я продолжаю пытаться выбрать элемент из раскрывающегося списка с помощью webdriver, но не смог бы этого добиться.Невозможно выбрать элемент из раскрывающегося списка Использование веб-редактора Selenium

Сценарий будет выглядеть так:

  1. Существует туристический маршрут плагин в моем приложении.
  2. Пользователю необходимо выбрать страну, из которой вы выпадаете из страны.
  3. После выбора страны> Фокус приложения переехал в город поиск поп.
  4. Из списка поиска города нужно выбрать город и нажать oK.
  5. Это заполнит город в приложении.

HTML snipset приводится ниже:

![<tr> 
<td class="formfield">`enter code here` 
<select name="ctl00$M$PR_6$T2$CPLGx2$ddCountryDep" id="ctl00_M_PR_6_T2_CPLGx2_ddCountryDep" class="formField" onchange="PT8_DF_CountryChange('ctl00_M_PR_6_T2_CPLGx2_ddCountryDep', 'ctl00_M_PR_6_T2_CPLGx2_HCityDepID', 'ctl00_M_PR_6_T2_CPLGx2_txtCityDep', 'behaveCityPopup_TRAVEL_FORM', 'ctl00_M_PR_6_T2_CPLGx2_lblCityPopupTitle', 'ctl00_M_PR_6_T2_CPLGx2_txtSearchCityFilter', 'ctl00_M_PR_6_T2_CPLGx2_chkOtherCitySearch', 'ctl00_M_PR_6_T2_CPLGx2_txtOtherCitySearch', 'ctl00_M_PR_6_T2_CPLGx2_pnlCitySearchResult', 'ctl00_M_PR_6_T2_CPLGx2_pnlCityError', 'Departure'); return(false);"> 
<option value="Select...">Select...</option> 
<option value="Afghanistan">Afghanistan</option> 
<option value="Åland Islands">Åland Islands</option> 
<option value="Albania">Albania</option> 
<option value="Algeria">Algeria</option> 
<option value="American Samoa">American Samoa</option> 
<option value="Andorra">Andorra</option> 
<option value="Angola">Angola</option> 
<option value="Anguilla">Anguilla</option> 
<option value="Antigua and Barbuda">Antigua and Barbuda</option> 
<option value="Argentina">Argentina</option> 
<option value="Armenia">Armenia</option> 
<option value="Aruba">Aruba</option> 
<option value="Australia">Australia</option> 
<option value="Austria">Austria</option> 
<option value="Azerbaijan">Azerbaijan</option> 
<option value="Bahamas">Bahamas</option> 
<option value="Bahrain">Bahrain</option> 
<option value="Bangladesh">Bangladesh</option> 
<option value="Barbados">Barbados</option> 
<option value="Belarus">Belarus</option> 
<option value="Belgium">Belgium</option> 
<option value="Belize">Belize</option> 
<option value="Benin">Benin</option> 
<option value="Bermuda">Bermuda</option> 
<option value="Bhutan">Bhutan</option> 
<option value="Bolivia">Bolivia</option> 
<option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option> 
<option value="Botswana">Botswana</option> 
<option value="Brazil">Brazil</option> 
<option value="British Virgin Islands">British Virgin Islands</option> 
<option value="Brunei Darussalam">Brunei Darussalam</option> 
<option value="Bulgaria">Bulgaria</option> 
<option value="Burkina Faso">Burkina Faso</option> 
<option value="Burundi">Burundi</option> 
<option value="Cambodia">Cambodia</option> 
<option value="Cameroon">Cameroon</option> 
<option value="Canada">Canada</option> 
<option value="Cape Verde">Cape Verde</option> 
<option value="Cayman Islands">Cayman Islands</option> 
<option value="Central African Republic">Central African Republic</option> 
<option value="Chad">Chad</option> 
<option value="Channel Islands">Channel Islands</option> 
<option value="Chile">Chile</option> 
<option value="China">China</option> 
<option value="Colombia">Colombia</option> 
<option value="Comoros">Comoros</option> 
<option value="Congo">Congo</option> 
<option value="Cook Islands">Cook Islands</option> 
<option value="Costa Rica">Costa Rica</option> 
<option value="Côte d'Ivoire">Côte d'Ivoire</option> 
<option value="Croatia">Croatia</option> 
<option value="Cuba">Cuba</option> 
<option value="Cyprus">Cyprus</option> 
<option value="Czech Republic">Czech Republic</option> 
<option value="Democratic People's Republic of Korea">Democratic People's Republic of Korea</option> 
<option value="Democratic Republic of the Congo">Democratic Republic of the Congo</option> 
<option value="Denmark">Denmark</option> 
<option value="Djibouti">Djibouti</option> 
<option value="Dominica">Dominica</option> 
<option value="Dominican Republic">Dominican Republic</option> 
<option value="Ecuador">Ecuador</option> 
<option value="Egypt">Egypt</option> 
<option value="El Salvador">El Salvador</option> 
<option value="Equatorial Guinea">Equatorial Guinea</option> 
<option value="Eritrea">Eritrea</option> 
<option value="Estonia">Estonia</option> 
<option value="Ethiopia">Ethiopia</option> 
<option value="Faeroe Islands">Faeroe Islands</option> 
<option value="Falkland Islands (Malvinas)">Falkland Islands (Malvinas)</option> 
<option value="Fiji">Fiji</option> 
<option value="Finland">Finland</option> 
<option value="France">France</option> 
<option value="French Guiana">French Guiana</option> 
<option value="French Polynesia">French Polynesia</option> 
<option value="Gabon">Gabon</option> 
<option value="Gambia">Gambia</option> 
<option value="Georgia">Georgia</option> 
<option value="Germany">Germany</option> 
<option value="Ghana">Ghana</option> 
<option value="Gibraltar">Gibraltar</option> 
<option value="Greece">Greece</option> 
<option value="Greenland">Greenland</option> 
<option value="Grenada">Grenada</option> 
<option value="Guadeloupe">Guadeloupe</option> 
<option value="Guam">Guam</option> 
<option value="Guatemala">Guatemala</option> 
<option value="Guernsey">Guernsey</option> 
<option value="Guinea">Guinea</option> 
<option value="Guinea-Bissau">Guinea-Bissau</option> 
<option value="Guyana">Guyana</option> 
<option value="Haiti">Haiti</option> 
<option value="Holy See">Holy See</option> 
<option value="Honduras">Honduras</option> 
<option value="Hong Kong Special Administrative Region of China">Hong Kong Special Administrative Region of China</option> 
<option value="Hungary">Hungary</option> 
<option value="Iceland">Iceland</option> 
<option value="India">India</option> 
<option value="Indonesia">Indonesia</option> 
<option value="Iran, Islamic Republic of">Iran, Islamic Republic of</option> 
<option value="Iraq">Iraq</option> 
<option value="Ireland">Ireland</option> 
<option value="Isle of Man">Isle of Man</option> 
<option value="Israel">Israel</option> 
<option value="Italy">Italy</option> 
<option value="Jamaica">Jamaica</option> 
<option value="Japan">Japan</option> 
<option value="Jersey">Jersey</option> 
<option value="Jordan">Jordan</option> 
<option value="Kazakhstan">Kazakhstan</option> 
<option value="Kenya">Kenya</option> 
<option value="Kiribati">Kiribati</option> 
<option value="Kuwait">Kuwait</option> 
<option value="Kyrgyzstan">Kyrgyzstan</option> 
<option value="Lao People's Democratic Republic">Lao People's Democratic Republic</option> 
<option value="Latvia">Latvia</option> 
<option value="Lebanon">Lebanon</option> 
<option value="Lesotho">Lesotho</option> 
<option value="Liberia">Liberia</option> 
<option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option> 
<option value="Liechtenstein">Liechtenstein</option> 
<option value="Lithuania">Lithuania</option> 
<option value="Luxembourg">Luxembourg</option> 
<option value="Macao Special Administrative Region of China">Macao Special Administrative Region of China</option> 
<option value="Madagascar">Madagascar</option> 
<option value="Malawi">Malawi</option> 
<option value="Malaysia">Malaysia</option> 
<option value="Maldives">Maldives</option> 
<option value="Mali">Mali</option> 
<option value="Malta">Malta</option> 
<option value="Marshall Islands">Marshall Islands</option> 
<option value="Martinique">Martinique</option> 
<option value="Mauritania">Mauritania</option> 
<option value="Mauritius">Mauritius</option> 
<option value="Mayotte">Mayotte</option> 
<option value="Mexico">Mexico</option> 
<option value="Micronesia, Federated States of">Micronesia, Federated States of</option> 
<option value="Monaco">Monaco</option> 
<option value="Mongolia">Mongolia</option> 
<option value="Montenegro">Montenegro</option> 
<option value="Montserrat">Montserrat</option> 
<option value="Morocco">Morocco</option> 
<option value="Mozambique">Mozambique</option> 
<option value="Myanmar">Myanmar</option> 
<option value="Namibia">Namibia</option> 
<option value="Nauru">Nauru</option> 
<option value="Nepal">Nepal</option> 
<option value="Netherlands">Netherlands</option> 
<option value="Netherlands Antilles">Netherlands Antilles</option> 
<option value="New Caledonia">New Caledonia</option> 
<option value="New Zealand">New Zealand</option> 
<option value="Nicaragua">Nicaragua</option> 
<option value="Niger">Niger</option> 
<option value="Nigeria">Nigeria</option> 
<option value="Niue">Niue</option> 
<option value="Norfolk Island">Norfolk Island</option> 
<option value="Northern Mariana Islands">Northern Mariana Islands</option> 
<option value="Norway">Norway</option> 
<option value="Occupied Palestinian Territory">Occupied Palestinian Territory</option> 
<option value="Oman">Oman</option> 
<option value="Pakistan">Pakistan</option> 
<option value="Palau">Palau</option> 
<option value="Panama">Panama</option> 
<option value="Papua New Guinea">Papua New Guinea</option> 
<option value="Paraguay">Paraguay</option> 
<option value="Peru">Peru</option> 
<option value="Philippines">Philippines</option> 
<option value="Pitcairn">Pitcairn</option> 
<option value="Poland">Poland</option> 
<option value="Portugal">Portugal</option> 
<option value="Puerto Rico">Puerto Rico</option> 
<option value="Qatar">Qatar</option> 
<option value="Republic of Korea">Republic of Korea</option> 
<option value="Republic of Moldova">Republic of Moldova</option> 
<option value="Réunion">Réunion</option> 
<option value="Romania">Romania</option> 
<option value="Russian Federation">Russian Federation</option> 
<option value="Rwanda">Rwanda</option> 
<option value="Saint Helena">Saint Helena</option> 
<option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option> 
<option value="Saint Lucia">Saint Lucia</option> 
<option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option> 
<option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option> 
<option value="Saint-Barthélemy">Saint-Barthélemy</option> 
<option value="Saint-Martin (French part)">Saint-Martin (French part)</option> 
<option value="Samoa">Samoa</option> 
<option value="San Marino">San Marino</option> 
<option value="Sao Tome and Principe">Sao Tome and Principe</option> 
<option value="Saudi Arabia">Saudi Arabia</option> 
<option value="Senegal">Senegal</option> 
<option value="Serbia">Serbia</option> 
<option value="Seychelles">Seychelles</option> 
<option value="Sierra Leone">Sierra Leone</option> 
<option value="Singapore">Singapore</option> 
<option value="Slovakia">Slovakia</option> 
<option value="Slovenia">Slovenia</option> 
<option value="Solomon Islands">Solomon Islands</option> 
<option value="Somalia">Somalia</option> 
<option value="South Africa">South Africa</option> 
<option value="South Sudan">South Sudan</option> 
<option value="Spain">Spain</option> 
<option value="Sri Lanka">Sri Lanka</option> 
<option value="Sudan">Sudan</option> 
<option value="Suriname">Suriname</option> 
<option value="Svalbard and Jan Mayen Islands">Svalbard and Jan Mayen Islands</option> 
<option value="Swaziland">Swaziland</option> 
<option value="Sweden">Sweden</option> 
<option value="Switzerland">Switzerland</option> 
<option value="Syrian Arab Republic">Syrian Arab Republic</option> 
<option value="Tajikistan">Tajikistan</option> 
<option value="Thailand">Thailand</option> 
<option value="The former Yugoslav Republic of Macedonia">The former Yugoslav Republic of Macedonia</option> 
<option value="Timor-Leste">Timor-Leste</option> 
<option value="Togo">Togo</option> 
<option value="Tokelau">Tokelau</option> 
<option value="Tonga">Tonga</option> 
<option value="Trinidad and Tobago">Trinidad and Tobago</option> 
<option value="Tunisia">Tunisia</option> 
<option value="Turkey">Turkey</option> 
<option value="Turkmenistan">Turkmenistan</option> 
<option value="Turks and Caicos Islands">Turks and Caicos Islands</option> 
<option value="Tuvalu">Tuvalu</option> 
<option value="Uganda">Uganda</option> 
<option value="Ukraine">Ukraine</option> 
<option value="United Arab Emirates">United Arab Emirates</option> 
<option value="United Kingdom of Great Britain and Northern Ireland">United Kingdom of Great Britain and Northern Ireland</option> 
<option value="United Republic of Tanzania">United Republic of Tanzania</option> 
<option value="United States of America">United States of America</option> 
<option value="United States Virgin Islands">United States Virgin Islands</option> 
<option value="Uruguay">Uruguay</option> 
<option value="Uzbekistan">Uzbekistan</option> 
<option value="Vanuatu">Vanuatu</option> 
<option value="Venezuela (Bolivarian Republic of)">Venezuela (Bolivarian Republic of)</option> 
<option value="Viet Nam">Viet Nam</option> 
<option value="Wallis and Futuna Islands">Wallis and Futuna Islands</option> 
<option value="Western Sahara">Western Sahara</option> 
<option value="Yemen">Yemen</option> 
<option value="Zambia">Zambia</option> 
<option value="Zimbabwe">Zimbabwe</option> 

</select>] 

Для лучшей идеей, я делюсь here стопорное снимок приложения.

+0

Какой код вы пытаетесь выбрать в раскрывающемся списке? –

ответ

0

Пожалуйста, используйте ниже код, чтобы выбрать конкретное значение из вашего выпадающего списка:

public void finddata(String Text) { 
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("ctl00_M_PR_6_T2_CPLGx2_ddCountryDep"))); 
driver.findElement(By.id(Text)).click(); 

    Select sel = new Select(driver.findElement(By.id("ctl00_M_PR_6_T2_CPLGx2_ddCountryDep"))); 
    sel.selectByVisibleText("Albania"); 

} 

Вы можете использовать XPath, CSSSelector также найти элемент.

+0

Большое спасибо, но этот код не работает, не уверен, что пошло не так :(Я продолжаю многократно пытаться. –

+0

Какая ошибка вы получаете при использовании моего кода? –

+0

Сообщение об ошибке: Элемент не найден в кеше - возможно, страница изменилась с тех пор, как она была просмотрена –

0

Осмотрите элемент, скопируйте XPath и использовать XPath, чтобы устранить проблему

шаги, чтобы исправить:

Используйте браузер Google Chrome, правой кнопкой мыши на элементе и выберите инспектировать элемент, копию выбранный элемент xpath с помощью правого клика -> Скопировать Xpath и использовать выражение xpath в вашем коде

0

Я предлагаю вам использовать cssSelector и использовать соответствующее количество ожиданий с ним.

public void SelectCountryByValue(string country) 
{ 
    By byValue = By.CssSelector("#ctl00_M_PR_6_T2_CPLGx2_ddCountryDep > option[value='" + country + "']"); 
    new WebDriverWait(Driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementExists(byValue)); 

    var country = new SelectElement(Driver.FindElemenet(byValue)); 
    country.SelectByValue(companyCode); 
} 

Примечание: записано в C#, но синтаксис и преобразование этого в Java это должен быть очень похож

+0

Thnaks much ...Позволяет мне попробовать –

0

Просто интересно ... вы проверили, если webdriver перешел на всплывающее окно, прежде чем попытаться найти элемент во всплывающем окне. Если нет, вам может понадобиться сделать что-то вроде

popup = driver.switchTo().window(windowHandle); 

И затем попробуйте найти элемент.

+0

Saif, всплывающее окно само по себе не открывается, сценарий: выберите страну, а затем выберите город из Pop Up, на первом шаге его не узнает выбор страны. –

+0

Попробуйте xpath или css в инструменте разработчика браузера для Chrome (перед запуском в вашем коде), это скажет вам, есть ли у вас проблема в локаторе элементов или если это проблема синхронизации. что-то вроде этого $ x («Ваш xpath идет здесь») – user1019163