#python #selenium #automation #automated-tests
#python #селен #автоматизация #автоматизированные тесты
Вопрос:
Я использую как xpath, так и css_selector для поиска элемента, он найден, он щелкнул, но он все равно не может отправить ключи. Я думаю, что проблема заключается в том, что класс ввода при нажатии и без нажатия отличается (‘_1y306T’ и ‘_1y306T _2ynKud’).Я пытался использовать EC, sleep, но это не удалось.
HTML-код:
<div class='UEclfJ _27cR_W'>
<input type ='tel' autocomplete='one-time-code' maxlength = '6'>
<input class='_1y306T _2ynKud' maxlength = '1'reandonly value>
<input class='_1y306T' maxlength = '1'reandonly value>
<input class='_1y306T' maxlength = '1'reandonly value>
<input class='_1y306T' maxlength = '1'reandonly value>
<input class='_1y306T' maxlength = '1'reandonly value>
<input class='_1y306T' maxlength = '1'reandonly value>
</div>
Я протестировал первую ячейку, в ней было 6 ячеек (форма OTP)
Мой код:
cell_change = WebDriverWait(self.driver,10).until(lambda driver:self.driver.find_element_by_xpath('//input[contains(@class, "_1y306T") and contains(@class, "_2ynKud")]'))
self.driver.execute_script("arguments[0].removeAttribute('readonly','readonly')", cell_change)
print("remove success")
sleep(3)
cell_change.send_keys("1")
sleep(1)
Спасибо.
Комментарии:
1. Я думаю, ваша проблема в том, что входной элемент имеет атрибут только для чтения .
2. да, я думал об этом, я попытался удалить это с помощью execute_js и установить значение, его не удается подтвердить
3. Вопрос в том, можете ли вы вручную ввести текст этих элементов? (человеком, а не селеном)
4. да, я могу ввести вручную
5. Я удалил «только для чтения» перед send_keys, она немного изменилась, но по-прежнему не отображается символ
Ответ №1:
Попробуйте это:
cell_change = WebDriverWait(self.driver,10).until(lambda driver:self.driver.find_element_by_xpath('//input[contains(@class, "_1y306T") and contains(@class, "_2ynKud")]'))
Комментарии:
1. Она по-прежнему не работает, ее можно щелкнуть, но невозможно отправить send_keys