Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Не могу выбрать поле ввода и ввести значение

python
webdriver
angularjs
Теги: #<Tag:0x00007f7b6222e9a0> #<Tag:0x00007f7b6222e838> #<Tag:0x00007f7b6222e6d0>

#1

Есть поле ввода (angular-material input text field grouped and formatted for a phone number)

<md-input-container class="mat-input-container ng-touched ng-dirty ng-invalid" _ngcontent-c0="" style="width: 70%; display: inline-block;">
<div class="mat-input-wrapper">
<div class="mat-input-table">
<div class="mat-input-prefix"></div>
<div class="mat-input-infix">
<input id="md-input-3" class="mat-input-element ng-touched ng-dirty ng-invalid" type="text" _ngcontent-c0="" maxlength="10" mdinput="" name="phoneNumber" placeholder="тел. номер" required="" ng-reflect-required="" ng-reflect-maxlength="10" ng-reflect-name="phoneNumber" ng-reflect-model="" ng-reflect-placeholder="тел. номер" ng-reflect-type="text" aria-describedby="">
<span class="mat-input-placeholder-wrapper">
<label class="mat-input-placeholder mat-float mat-empty" for="md-input-3">
тел. номер
<span class="mat-placeholder-required">*</span>
</label>
</span>
</div>
<div class="mat-input-suffix"></div>
</div>

Вроде как нахожу этот элемент. Появляется маска ввода номера:

driver.find_element_by_name("phoneNumber").click()

    for numb in username_correct:
        driver.find_element_by_name("phoneNumber").send_keys(numb)

скрипт отрабатывает успешно, без ошибок.
Но номер не вводится.

пытался другим способом найти и ввести номер:

tel = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@ng-reflect-maxlength='10']")))
    tel.click()
    tel.send_keys(Keys.RETURN)

Но увы, ситуация точно такая же


(Yaroslav Pernerovskyy) #2

Вам наверное нужно сначала нажать клавишу home, а потом вводить.

phoneField.sendKeys(Keys.HOME + numb);