Целью является отправка имени пользователя и пароля на страницу входа на веб-сайт. Ссылка не может быть предоставлена по соображениям конфиденциальности.
Для этого я пробовал использовать селекторный подход Xpath и CSS. Тем не менее, каждый метод дает мне разные ошибки.
Например, использование подхода xpath
, как показано ниже;
user_id =self.browser.find_elements_by_xpath("//[@id='tcl_MainContentPlaceHolder_tcl_Username']")
user_id.send_keys( 'username' )
user_pw = self.browser.find_elements_by_xpath("//*=[@id='tcl_MainContentPlaceHolder_tcl_Password']")
user_pw.send_keys( '12345678' )
выдаст ошибку;
AttributeError: 'list' object has no attribute 'send_keys'
Принимая во внимание, что с помощью селектора CSS
, как показано ниже;
user_id= WebDriverWait( self.browser, 20 ).until(EC.presence_of_element_located( (By.CSS_SELECTOR, 'tcl_MainContentPlaceHolder_tcl_Username.form-control.input-lg') ) )
user_id.send_keys( 'username' )
выдаст ошибку
selenium.common.exceptions.TimeoutException: Message:
Я поиграл с другим xpath
& css
путем, но, он не дает лучшего результата.
Полный html / путь к каждому из поля имени пользователя и пароля приведен ниже;
Имя пользователя
<div class="form-group m-b-tcl">
<input name="tcl$MainContentPlaceHolder$tcl$Username" type="text"
id="tcl_MainContentPlaceHolder_tcl_Username" class="form-control input-lg"
placeholder="Username" autocomplete="off">
<span id="tcl_MainContentPlaceHolder_tcl_UserNameRequired"
style="color:#CC0011;visibility:hidden;"></span>
</div>
Пароль
<div class="form-group m-b-tcl">
<span id="tcl_MainContentPlaceHolder_ctl00_PasswordRequired"
style="visibility:hidden;"></span> <input name="tcl$MainContentPlaceHolder$ctl00$Password"
type="password" id="tcl_MainContentPlaceHolder_tcl_Password"
class="form-control input-lg" placeholder="Password">
</div>
Я действительно ценю, если кто-то может показать, где я поступил неправильно. Заранее спасибо.