2016-03-24 1 views
1

я застрял, пытаясь изменить настройки DNS для доменов в Namecheap с помощью питона селеномПопытка изменить Namecheap выберите поле пользовательских DSN с помощью питона селеном

Вот HTML:

<select class="dashed-select add-margin ng-untouched ng-valid select2-offscreen ng-dirty ng-valid-parse" ng-change="nameServerChange()" title="" tabindex="-1" data-wrapper="ns" data-nccontrol="visibility" ng-model="selectedNameserver.id" data-ng-class="{'disabled':pageBehavior.overViewModel.IsDomainLocked}" data-ui-select2="NoSearchOption" style="display: block;"> 
<option value="0">Namecheap BasicDNS</option> 
<option ng-hide="domainnameserverViewModel.ProviderName == 'RE'" value="1">Namecheap BackupDNS</option> 
<option ng-hide="domainnameserverViewModel.IsHostedServiceAvailable" value="2">Namecheap Web Hosting DNS</option> 
<option value="3">Custom DNS</option> 
<!-- ngIf: model.PremiumDnsDetails.IsPremiumdDNSBuyed --> 
</select> 

Так что мой вопрос, как выбрать параметр «Пользовательский DNS», а затем изменить поля с помощью собственных серверов имен. Я знаю, что было бы намного проще использовать API, но я бы действительно хотел исправить использование selenium webdriver. Спасибо

ответ

0

Используйте Select class и select_by_visible_text() метод:

from selenium.webdriver.support.select import Select 

select = Select(driver.find_element_by_css_selector('select[ng-model="selectedNameserver.id"]')) 
select.select_by_visible_text("Custom DNS") 
+0

Привет, просто попробовал ваш ответ, и я получаю: Не удалось найти элемент: { «метод»: «селектор CSS», «селектор»:» выберите [ng-model = \ "selectedNameserver.id \"] "} –

+0

@RobertWest хорошо, не могли бы вы сослаться на страницу, с которой работаете? В противном случае это быстро превратилось в игру гадания :) – alecxe

+0

Нет, мой плохой - просто протестировал и работает нормально ... мой плохой я забыл добавить ждать элемента раньше. Большое спасибо за ответ! –

Смежные вопросы