2016-05-10 19 views
1

私は 'Tableau'のログイン画面を自動化し、レポートのダウンロードを試みています。私が「ダウンロード」ボタンに達するまで、すべてうまく動作します。最初の問題は、ダウンロードボタンを右クリックすることができず、奇妙なChromeの「検査」を行うことができないことです。私はどういうわけか、ページ全体を通ってxpathを見つけることができます。私はそれをクリックしようとすると、私は "原因:org.openqa.selenium.NoSuchElementException:要素が見つかりません:" "メソッド": "xpath"、 "セレクター": "/ html/body/div [ 2]/div [2]/div/div [3]/div [4]/span [1] "}"となります。ページレイアウトは、私は任意の助けをいただければ幸いXPathのSeleniumをクリックして要素を使用することができません

<div class="tabToolbarButton tab-widget" style="-webkit-user-select: none; -webkit-tap-highlight-color: transparent; width: 77.4px;"> 
<span class="tabToolbarButtonImg tab-icon-download"></span> 
<span class="tabToolbarButtonText">Download</span></div> 
<span class="tabToolbarButtonImg tab-icon-download"></span> 
<span class="tabToolbarButtonText">Download</span> 
    </div> 

を選んでいたところから、このようなものです

String xPath = "/html/body/div[2]/div[2]/div/div[3]/div[4]/span[1]"; 

    (new WebDriverWait(driver, 20)) 
     .until(ExpectedConditions.elementToBeClickable(By.xpath(xPath))); 

    driver.findElement(By.xpath(xPath)).click(); 

:下回る

私が使用していたコードが記載されています。 「検査する」ことができない理由は何ですか?

+0

最初のスパンをクリックするには、これをcssSelctorとして使用し、div.tabToolbarButton.tab-widget> span.tabToolbarButtonImg.tab-icon-downloadの動作を確認してください – noor

答えて

0

要素を右クリックできない場合は、ページ上の任意の場所を右クリックして[この要素を検査する]を選択することもできます。次に、双眼のアイコンをつかむことができます(ツールチップのメッセージ - ページ内の要素を選択して検査します)、目的のWeb要素をポイントしてxpathを確認します。 xpathを正しく書いているかどうかを確認する必要があります。クロムでは、プラグインなしでこれを行うことができます。開発者ウィンドウ(Inspect Elementオプションを選択したときに開いているのと同じウィンドウ)で、コンソールウィンドウを探し、下記のようにxpathを書いてEnterキーを押します。

$x("Write x path here") 

xpathのgoogle検索ボックス

$x("//input[@id='lst-ib']") 

なぜあなたは絶対xpathを書くのか分かりません。その悪い習慣。あなたはより良い方法でダウンロードボタンのxパスを書くことができます。例:

(//span[@class='tabToolbarButtonText']) 
0

問題が発生しました。それで、私が自動化しようとしているWebページがフレームを使用しているようです。そのため、xpathを提供した後でも、要素はクリックされませんでした。フレームをフォーカスするために 'switchTo.frame'を使用しなければならず、その要素をクリックすることができました。すべての回答をありがとう。

私がまだ理解していないことは、なぜ要素を直接検査することができなかったのかということですが、それは異なる質問です。

関連する問題