私はPythonでいくつかのSAPジョブ監視を自動化しようとしています。 >読む - (名前、ユーザーから-への)ジョブパラメータを送信> - >オープンSM37トランザクション-Selenium Python:javascriptの実行後に要素が見つかりません
ConnectおよびSAP環境ログイン:私は、次の操作を実行するスクリプトを作成したいですその出力をデータベースに格納します。
私はそれを可能にするモジュールまたはライブラリについて知らない。 WEBGUIがすでに有効になっていることを確認しました。私はブラウザを通して環境を開くことができます。閲覧モジュールは、私が必要なすべてを行うことを可能にするはずです。 MechanizeとRoboBrowserで試行しました。それは動作しますが、WEBGUIはレンダリングのために多くのjavascriptを実行し、それらのモジュールはjavascriptを処理しません。
もう1つのショットがあります:セレン。 私は接続し、環境にログインすることができました。しかし、新しいページ(メインメニュー)から要素を選択しようとすると、Seleniumは要素を見つけることができません。
ソースコードを印刷するメインメニューのサイトがjavascriptでレンダリングされていることがわかりました。ソースコードには要素はまったく含まれておらず、タイトル(「ようこそ」)のみです。これはログインが成功したことを意味します。
私はこれを求めて多くの投稿を読んでおり、誰も明示的な条件付きでWebDriverWait
を使用することを推奨します。これを試し
は、動作しませんでした:
driver.get("http://mysapserver.domain:8000/sap/bc/gui/sap/its/webgui?sap-client=300&sap-language=ES")
wait = WebDriverWait(driver, 30)
element = wait.until(EC.presence_of_element_located((By.ID, 'ToolbarOkCode')))
EDIT:
を2 sourcecodesがあります:SC-1は、セレンを読み込むものです。 SC-2は、javascriptがサイト(「Inspect Element」からのもの)をレンダリングすると表示されるものです。
完全SC-1はこれです: https://pastebin.com/5xURA0Dc
SC-2要素自体については、以下である:
<input id="ToolbarOkCode" ct="I" lsdata="{0:'ToolbarOkCode',1:'Comando',4:200,13:'150px',23:true}" lsevents="{Change:[{ClientAction:'none'},{type:'TOOLBARINPUTFIELD'}],Enter:[{ClientAction:'submit',PrepareScript:'return\x20its.XControlSubmit\x28\x29\x3b',ResponseData:'delta',TransportMethod:'partial'},{Submit:'X',type:'TOOLBARINPUTFIELD'}]}" type="text" maxlength="200" tabindex="0" ti="0" title="Comando" class="urEdf2TxtRadius urEdf2TxtEnbl urEdfVAlign" value="" autocomplete="on" autocorrect="off" name="ToolbarOkCode" style="width:150px;">
はまだ要素を見つけることができません。どうすれば解決できますか? ありがとうございます。
要素が –
内部フレームにおけるソースコードはまったくの要素が含まれていない、どちらのiframe内にあるかどうかを確認します。タイトルのみ(「Welcome」)。つまり、ログインが成功したことを意味します。 –
FirefoxのFirebugアドオンを使用して確認してください。特定の要素のコードを確認してください。 –