Я использую Selenium для автоматизации некоторых очень простых задач ввода данных. К сожалению, я не имею никакого влияния на сайт, на котором размещена форма.
У меня есть несколько полей в форме, которые, похоже, различаются только в тех областях, на которые я не знаю, как заставить Selenium смотреть. Я нахожу все поля на странице и могу ввести в них текст, как показано ниже:
Dim i As Integer = 0
Dim elements = browser.FindElementsByClassName("form-control")
For Each elemnt In elements
Try
elemnt.SendKeys(i)
Catch
End Try
i += 1
Next
К сожалению, это не будет долгосрочным решением, так как они могут изменить порядок ящиков или подобное без уведомления меня. Есть ли способ просмотреть весь тег <input ...>
?
Выбор входов ниже:
<input class="form-control ng-valid ng-dirty ng-valid-parse ng-touched" data-ng-model="sQuoteName" kdfapp="Quoting" kdfpage="createDeal" kdfid="dealName" style="">
<input kdfapp="quote" kdfpage="quote" kdfid="amEmail" type="text" class="form-control ng-valid ng-dirty ng-valid-parse ng-touched" id="ciscoEmail" data-ng-model="data.suggestAm" placeholder="Email" style="">
<select name="sQuoteType" data-ng-model="sQuoteType" data-ng-change="changeQuoteType();" kdfapp="Quoting" kdfpage="createDeal" kdfid="selectedBuyingBehalf_xxx" class="ng-pristine ng-untouched ng-valid">
<option value="" class="ng-binding">Select</option>
<option value="2" class="ng-binding">Prime Contractor/Systems Integrator</option>
<option data-ng-show="stiEligible" value="1" class="ng-binding ng-hide">Solution Technology Integrator</option>
<option data-ng-show="partner.partnerBuyMthod == 'DIRECT'" value="3" class="ng-binding" style="">IT Service Provider (Outsourcing Deal)</option>
</select>
Наиболее полезным дескриптором, похоже, является kdfid=