私はSelenium Pythonにはかなり新しく、1つのタスクを自動化しています。私の仕事では、「パスワード」と「パスワードの確認」の2つのフィールドにパスワードを入力する必要があります同じ属性ではあるが関数が異なる2つのフィールドを更新する引数
私はsend_keys
を使用してパスワードテキストを渡しています。しかし、私の問題は両方のフィールドが同じ属性を持ち、属性が動的に生成されるということです。以下は両方のフィールドのHTML要素です。
パスワードフィールド
<input size="12" id="mx-pw-1560134066" onblur="this.onkeyup();" value="" onkeyup="MxTableOnChangeText(this, 'CREDENTIAL_comhpmvcduiviewCreateVCDomainGroupAction1484904977993', '09USE939SBK9', 5)" type="PASSWORD">
を確認し、パスワードフィールド
<input size="12" id="mx-pw-1337668046" onblur="this.onkeyup();" value="" onkeyup="MxTableOnChangeText(this, 'CREDENTIAL_comhpmvcduiviewCreateVCDomainGroupAction1484904977993', '09USE939SBK9', 6)" type="PASSWORD">
IDフィールドの数が動的に生成されます。 onblurは両方とも同じです。これら2つのフィールドの間でhtmlで見られる違いは、MxTableOnChangeText
の最後の引数です。 FOr Passwordフィールドは5、Confirm Passwordは6です。引数に基づいて値を渡す必要があります。
そのために、以下のようにメソッドの引数の中にワイルドカードを使用しようとしました。しかし、私はエラーが発生しています。
driver.find_element_by_xpath('//input[matches(@onkeyup,"MxTableOnChangeText(this,*,*,5)")').send_keys('password')
動的IDを処理する方法またはメソッド引数の中でワイルドカードを使用する方法を教えてください。
TIA