2017-12-08 48 views
-1

IDまたは他のロケーターがないユーザー名フィールドを見つけようとしていますが、Selenium Web Driverを使用して簡単に見つけることができます。Python Selenium:ユーザー名フィールドをクリックできません

<div aria-hidden="true" style="cursor:text" data-bind="text: hintText, css: hintCss" class="placeholder">[email protected]</div> 

を次のようにChromeの要素を点検して使用

、このオブジェクトのHTMLは、このページのオブジェクトを検索するための最良の方法だろうとは何ですか?

これらの

+1

cssセレクタを使用します。そうでない場合は、クラス名を使用してみてください。 – thatrockbottomprogrammer

答えて

0

どちらかが動作するはずのおかげで(それは、このクラス型の第1 div -elementある場合)

driver.find_element_by_class_name('placeholder') 
driver.find_element_by_css_selector('div.placeholder') 
driver.find_element_by_xpath("//div[@class='placeholder']") 

のfind_element バージョンを使用して一致する複数の要素がある場合メソッドと返されたリストのインデックスを使用して、必要な要素を取得します。次のコード行のいずれかを使用することができます

0

click()User Nameフィールド:

classaria-hidden属性を使用して

driver.findElement(By.xpath("//div[@class='placeholder' and contains(text(),'[email protected]')]")); 
  • classtext属性を使用して

    • driver.findElement(By.xpath("//div[@class='placeholder' and @aria-hidden='true']")); 
      
  • 0

    最初にあなたの要素が異なるフレーム内にあることがわかります。 iframeを見つけて、最初にそれに切り替えます。その後、find_elemet_by_class_nameやfind_element_by_css_selectorやxpathなどのメソッドを使用して、目的のオブジェクトを見つけることができます。

    driver.switch_to.frame(driver.find_element_by_id("ID_OF_YOUR_FRAME")) 
    

    あなたは要素を検索するためにも、このリンクコードから参照を取ることができます:コードの下にしようとフレームに切り替えるため 「https://github.com/PrajinkyaPimpalghare/TimeSheet-Automation/blob/master/time_sheet_automation.py」は別の方法でも異なるの要素にアクセスするためのライン94から108を参照してください。フレーム。

    関連する問題