2016-07-31 14 views
3

変更されません。私はそれがに設定されているため、「」に入力タグのスタイル属性を設定する必要があるのPythonはexecute_scriptとセレンでスタイル属性を変更するが、属性の値が使用

でPhantomJSとセレンを"display:None"は、Seleniumのsend_keysで入力を埋めるのを防ぎます。

私はこれを達成するためにexecute_scriptを使用しています。 execute_scriptは実行されますが、style属性は変更されません。 PhantomJSがスタイル属性を変更しないのはなぜですか?

私はを削除するスタイル属性を持つHTML:

<input type="password" size="10" id="navbar_password" name="vb_login_password" tabindex="102" class="textbox" style="display: none;"> 

のPythonセレンスクリプト:

スタイル属性の値がexecute_scriptによって変更されていないのはなぜ

password = driver.find_element_by_name("vb_login_password") 

driver.execute_script("arguments[0]['style'] = arguments[1]", password, '') 

print(password.get_attribute("style")) 

//display:none; 
+0

**更新**:私は、ユーザー名の入力フィールドにさまざまな属性を変更してみました、それが働きましたたびにパスワード入力フィールドを変更することはできません...私はそれがディスプレイと関係があることを知っています:None属性ですが、修正できない場合はどのように修正するかわかりません。 おそらく、その要素をdomから削除してから、そのスタイル属性を持たないコピーを挿入するようにしてください。 –

答えて

1

次のようにしてみてください -

password = driver.find_element_by_name("vb_login_password") 

password = driver.execute_script("arguments[0].style.display = 'block'; return arguments[0];", password) 

print(password.value_of_css_property("display")) 

#now you can set value using send_keys 
password.send_keys("your value"); 

はそれが役に立てば幸い... :)

関連する問題