2017-11-17 4 views
0

私はログインの詳細を自動的に提出してから、ページにログインしようとしています。これまでSubmit /ログインSelenium + Python

私のコードスニペットは、次のとおりです。

from selenium import webdriver 
import selenium 
from selenium.webdriver.common.by import By 
driver = webdriver.Chrome("PathOfChromeDriver") 


driver.get("URL") 

username = driver.find_element_by_name("UserName") 
password = driver.find_element_by_name("Password") 

username.send_keys("My_Username") 
password.send_keys("My_Password") 

上記のスニペットが正常に動作します。問題提出さ/押しログイン:

driver.find_element_by_name("submit").click() 

など

ソースコードへ:私は私のような上記のこのフォーラムに見つけることができる、考えられるあらゆるバリエーションを試してみました

driver.find_element_by_xpath("Sign in").click() 

問題のウェブサイトの要素は次のとおりです:

<form action="/Account/SignIn?returnUrl=%252fProducts" method="post" id="page-root" class="signin-page local-new-style" autocomplete="off"> 

<div class="login"> 
    <img alt="logo" src="/Content/images/bg_login_logo.png" /> 
    <div class="inner_content "> 
     <div class="content"> 

      <h1>Access your account</h1> 
      <div> 
       <input type="text" name="UserName" placeholder="Login" /> 

      </div> 
      <div> 
       <input type="password" name="Password" placeholder="Password" /> 

      </div> 

      <div> 
       <label> 
        <input type="checkbox" name="RememberMe" value="True" /> 
        Remember my login on this computer 
       </label> 
      </div> 
      <div> 
       <button type="submit">Sign in</button> 
      </div> 
     </div> 
    </div> 
</div> 

</form> 

私はそれを動作させることができません。これは通常、 "ZZZ式YYYを持つ要素を見つけることができません"というエラーが表示されます。

すべての入力が高く評価されており、解決策を講じた人物は何もヒーローより短いです!

答えて

0

はこれを試してみてください:

driver.find_element_by_css_selector("form[id='page-root'] button").click() 

また、これは動作するはずです:

driver.find_element_by_id("page-root").submit() 
+0

はいを​​!できます!だから私は、私の試みが失敗した理由は、それが理にかなっていれば、私は "木の究極の親"を参照する必要があるからです。 ありがとう – WayOutofDepth

+0

お寄せいただきありがとうございます。あなたは「submit」という名前を探していましたが、submitはsubmitボタンのタイプです。 xpathが無効なため、 'サインイン'のxpath検索も機能しませんでした。あなたは確かに最終的な親を参照することができますが、必ずしも必要ではありません。私は通常id(これは一意です)を持つアイテムを検索し、そこから移動します。次のリンクは、CSSセレクタについてもう少し詳しく説明しています:https://saucelabs.com/resources/articles/selenium-tips-css-selectors – Marcel

0

あなたは以下に試すことができます。

driver.find_element_by_css_selector(".content>div>button").click() 
関連する問題