2016-09-13 9 views
1

C#に適切なXPATHの構文を作成しようとしていますが、AmazonのビジネスWebサイトからダウンロードボタンをクリックしています。私が試したすべてがボタンを見つけることができません。私が試したことのいくつかを次に示します。SpanクラスのC#セレニウムボタン

driver.FindElement(By.XPath("//button[@type='submit']")).Submit(); 

driver.FindElement(By.XPath("//span[contains(@class,'a-button-inner')][contains(text(),'downloadCSV_button-announce')]")).Submit(); 

driver.FindElement(By.XPath("//span[contains(@class,'a-button-inner')][contains(text(),'Download CSV')]")).Submit(); 

以下は、Amazonページのソースコードです。誰も私にこのダウンロードボタンをクリックするための適切なXPATHクエリを設計するのを助けることができますか?ありがとうございました。

<h1>Amazon Business Analytics</h1> 
<div class="a-row a-spacing-medium a-grid-vertical-align a-grid-center"> 
    <div class="a-column a-span12"> 
     <span class="a-declarative" data-action="aba:download-csv" data-aba:download-csv="{}"> 
      <span id="downloadCSV_button" class="a-button aok-float-right"><span class="a-button-inner"><input class="a-button-input" type="submit" aria-labelledby="downloadCSV_button-announce"><span id="downloadCSV_button-announce" class="a-button-text" aria-hidden="true">Download CSV</span></span></span> 
     </span> 

Screen shot of Chrome Developer tools

答えて

1

あなたは代わりに以下のように要素をクリックして実行するWebElement#click()を使用してみてください: -

driver.FindElement(By.CssSelector("input.a-button-input[aria-labelledby = 'downloadCSV_button-announce']")).Click(); 

それともspan要素として試すクリック可能である場合: -

driver.FindElement(By.Id("downloadCSV_button-announce")).Click(); 

または

driver.FindElement(By.Id("downloadCSV_button")).Click(); 
+1

CssSelectorでの最初の回答は完全に機能しました。ご協力いただきありがとうございます。 – Roro

+0

あなたの回答にフォローアップすることができますか?この同じタグを探すときにワイルドカードを使用したいのであれば、どうすればそれを達成できますか?代わりに 'downloadCSV_button-announce'を探すのではなく、代わりに何が気にしないのか、 'download *'を探しました。どうすればいい?ご協力いただきありがとうございます! – Roro

+0

これに関する別の質問をすることができました、私は誰かがあなたに答えを与えるでしょう、ありがとう.. –

関連する問題