2017-06-22 6 views
-1

私はinputタグの要素のためにSelenium Xpathを見つけようとしています。しかし、私は価値を得ていません。私は次のコードを使用しました:入力タグに配置された要素のSelenium XPathはどのようにして見つけることができますか?

WebDriverWait(driver, 
10).until(EC.presence_of_element_located((By.TAG_NAME("input"))))  
searchBox = driver.findElement(By.tagName("input")) 

しかし、それは動作していません!

+0

URLまたはHTMLを教えていただけますか? –

+0

[link](https://paytm.com/shop)はURLです。このURLでは、検索バーに** ** XPath **を正確に取得しようとしています。 – Bharathi

+0

多くの入力タグがあることがわかります。要素/ findElementsを使用して試すことができます –

答えて

1

あなたはidが、これはより良い動作するはずユニークであるので、これはWebページ上のIDを検索しますBy.IDのように、より具体的なファインダーを使用することができます。

検索ボックスのidは

input_0あなたのブラウザから検査要素を介して、それを調べることができ、または通常のキーF12の下に隠された開発ツールを経由して

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID("input_0")))) 

searchBox = driver.find_element_by_id('input_0') 

はのためにここに here以上読みましたロケータの詳細。

それが助けた場合、あなたは今日、何かを学んだなら、私を知ってみましょう:)ここ

+0

さて、リソースに感謝します。 – Bharathi

+0

@Bhathathi答えがあなたの質問を解決しましたか?ありがとう – DebanjanB

+0

@DebanjanBまだありません。しかし、他のオプションを試してみてください。 – Bharathi

0

は、あなたの質問への答えです:

私はコードまたはロケータのあなたのラインですべての問題が表示されません。

  • URLhttps://paytm.com/shopが適切にロードするために少し時間がかかるので、私たちはHTMLのDOMが完全にロードされるのを待つ必要があります。しかし、あなたは以下のいくつかのポイントと一緒にコードの行をしようと考えることがあります。 ExplicitWaitを使用するのが適切です。
  • 制限時間を10秒から20秒に増やすことを検討できます。
  • TAG_NAMEの代わりにXPATHロケータを使用することを検討してください。
  • コードのあなたの行は次のようになります。これは、あなたの質問に答えるなら、私を知ってみましょう

    search_box = WebDriverWait(browser, 20).until(
    EC.presence_of_element_located((By.XPATH, "//input[@id='input_0']")) 
    ) 
    search_box.click() 
    

関連する問題