質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.77%

pythonのseleniumで作ったプログラムが途中で停止してしまう

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,849
退会済みユーザー

退会済みユーザー

seleniumでweb操作の自動化をしようとしております。
webページ上のボタンをクリックしたいのですが要素を特定できないためプログラムの動作が途中で停止してしまいます。
htmlの知識が少ないためsilk driverを利用しておりますがsilk driveのコード通りにやってもうまく要素を特定できないため質問させていただきます。
プログラミング初心者とゆうこともあり問題解決に必要な情報が足りていないかもしれないですがその際はコメントいただけたらと思います。

windows10

python3.6

webページ上のボタンをクリックしたいです。
ボタンにはサーバー作成と書いておりクリックするとポップアップで元のページ上に新たな画面が表示されます。
元の画面のURL https://console.cloud.nifty.com/web#computing/instance
新たな画面がポップアップされたページのURL https://console.cloud.nifty.com/web#computing/instance/create

<a class="btn btn-create" href="#computing/instance/create"><i class="fa fa-plus-circle fa-lg"></i>サーバー作成</a>

 試したこと

1.browse.find_element_by_link_text("サーバー作成").click()
2.browser.get("https://console.cloud.nifty.com/web#computing/instance/create")

直接ポップアップ表示された画面を表示しようとしましたが表示できないです。

エラーメッセージ
selenium.common.exceptions.NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=64.0.3282.186)
(Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 10.0.16299 x86_64)

怪しい原因など分かる方おりましたらご教示ください。よろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

エラーメッセージからは、恐らくウィンドウハンドルの切り替え等に失敗しているのであろうとは思いますが、残念ながら Selenium 等によるスクレイピングやブラウジング自動化のトラブルは原因の多くがサイト固有の特徴に依るため、 実際のサイト HTML 及びその挙動と実際に使っている操作コード が無ければ、なかなかこれ以上のエラーの原因については分からないと思います。 Silk WebDriver のようなツールも、あくまで 「十分な知識がある人間が仕事を楽にするツール」 ですから、トラブルの発生とその解決はある程度、自らの知識で行う必要があります。どうしてもブラウジング自動化で実現したい要件なのであれば、やはりその原因を追求できる程度には、ウェブサイトの作り等について学ばれる必要があるかと存じます。特に、今回のような認証が必要なサイトの場合、こういった質問に必要な情報をきちんと詰め込む事の方が、寧ろ大変なのではないでしょうか。

ただ今回は、御呈示の URL を拝見するに、恐らくは ニフクラ 上に新しいサーバーを作成するのが要件という認識で宜しいでしょうか。もしそうなのであれば、 サーバー等の各リソースを操作する REST API が公式に用意されていますので、そちらを用いた方が簡単かつ確実 かと存じます。勿論、ウェブサービスという広い範囲でいえば、こういった API を持っている例のほうが少ないでしょうが、幸いにクラウドプロバイダという領域では大抵がこのような API を用意しており、プログラムによる自動操作が簡単に出来るようになっています。 API はプログラム向けに作られた仕組みであるため、ブラウジング自動化よりも 素直に動作し、動かないときは何が悪いかもはっきりしやすい ですから、まずはこれを使って試してみることをお勧め致します。

残念ながら SDK としては Java しか提供されていない (GitHub 上には Ruby もあるっぽい) のですが、 Python の場合は AWS 互換であるため botocore が使える そうなので、 Python でもそこまで苦労はしないと思われます。是非御検討下さい。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/28 02:37

    大変丁寧な回答感謝します。

    今後を考えるとやはりwebサイトの作りを勉強したほうがいいと思いました。時間はかかるかも知れませんが取り組んでみます。

    APIでいじれるサービスなんてあるんですね。大変貴重なお話ありがとうございます。こちらも試してみようと思います。

    貴重な時間を使って解答していただいたことに感謝申し上げます。また何かありましたらご助力いただけたら幸いです。

    キャンセル

0

大変丁寧な回答感謝します。

今後を考えるとやはりwebサイトの作りを勉強したほうがいいと思いました。時間はかかるかも知れませんが取り組んでみます。

APIでいじれるサービスなんてあるんですね。大変貴重なお話ありがとうございます。こちらも試してみようと思います。

貴重な時間を使って解答していただいたことに感謝申し上げます。また何かありましたらご助力いただけたら幸いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.77%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る