首页 > 解决方案 > 从 HTML 属性输入 Selenium webdriver 用户名和密码

问题描述

我有一个使用 selenium webdriver 登录和导航网站的 python 脚本。登录已经成功,但是公司已经更新了他们的网站,我找不到任何“ID”/“名称”/属性来输入用户名和密码。

确实有效的代码(在新网站版本之前)是:

try:
    elem_username = WebDriverWait(b, delay).until(EC.presence_of_element_located((By.NAME, 'username')))
except TimeoutException:
    elem_username = None

# Wait for password to appear
try:
    elem_password = WebDriverWait(b, delay).until(EC.presence_of_element_located((By.NAME, 'password')))
except TimeoutException:
    elem_password = None

检查新部署的网站时,以下是用户名检查窗口中的 html:

用户名检查窗口中的 HTML 代码

使用其他标签/功能我可以使用什么来输入用户名?这是查看更新后的网站时我的检查窗口中的用户名 HTML 代码:

<div>Version 1.4.4087</div></div><div class="login-form"><sip-input class="login-input login-style has-errors" sip-input-group="login" sip-model="$ctrl.username" sip-minlength="3" sip-maxlength="12" sip-placeholder-translation="USERNAME" sip-required="" sip-autofocus=""><input sip-scope-field="sipInputCtrl.inputElement" ng-attr-tabindex="{{sipInputCtrl._sipTabindex}}" class="sip-input-element ng-valid ng-valid-maxlength ng-touched ng-dirty ng-valid-parse ng-not-empty" ng-keydown="sipInputCtrl.onKeyDown($event)" ng-keyup="sipInputCtrl.onKeyUp($event)" type="text" step="1" maxlength="12" ng-model="sipInputCtrl.sipModel" autofocus="autofocus" tabindex="0"><!----><!----><!----><div class="sip-input-placeholder-big" translate="USERNAME" ng-if="::sipInputCtrl.isTranslation">User name</div><!----><!----><div class="sip-input-placeholder-small" translate="USERNAME" ng-if="::sipInputCtrl.isTranslation">User name</div><!----><ng-transclude><sip-input-error sip-error-minlength="" class="error-hidden"><ng-transclude><span translate="ENTERUSERNAME">Please enter your user name</span></ng-transclude></sip-input-error></ng-transclude><div class="sip-input-focus"></div>

标签: pythonselenium-webdriverweb-crawler

解决方案


推荐阅读