2016-07-12 2 views
1

要素を見つける方法を知っていると私はどのように要素を見つけるには考えているいませんユーザーが作成したフォルダを作成してクリックする必要がありますが、作成した要素を見つける方法がわかりません。構造は次のようになります。ダイナミックボタン、</p> <p>ページがあるフォルダが含まれています...私は、ページのcomplected構造を持っている

<div class="row-text" style="width: calc(100% - 84px);"> 
    <span class="row-item-name"> 
    <span class="row-item-link"> 
     <a class="grid-row-element-name">Eclipse111</a> 
    </span> 
    <span class="row-item-actions hover-child"> 
     <a>Share</a><span> | </span><a watchdox-rename="name" watchdox-save-func="rename(element, name)" class="rename-link"><span translate="">Rename</span></a> 
    </span> 
    </span> 
    <br> 
    <span class="row-meta-data"> 
    <span class="creation-date-formatted">Today at 10:30 | </span> 
    <span class="row-email">[email protected]</span> 
    </span> 
</div> 
<div class="grid-row-buttons"> 
    <div class="row-tools"> 
     <div class="btn-group dropdown" uib-dropdown=""> 
     <button type="button" class="btn btn-default uib-dropdown-toggle clear-button dropdown-toggle" uib-dropdown-toggle="" aria-haspopup="true" aria-expanded="false"> 
      <span class="icon-wd-material-menu"></span> 
     </button> 
     <ul uib-dropdown-menu="" class="dropdown-menu-highZ contextual-menu dropdown-menu" role="menu"> 
     </ul> 
     </div> 
    </div> 
</div> 

クラス=「グリッド行要素名は」(各フォルダには独自のを持っている)に作成されたフォルダの名前が含まれています....

Iどのようにテストの原因を続けるか分かりません。フォルダをクリックできません。

ありがとうございます。

+0

フォルダのロケータを作成する方法がわからないことを修正しましたか?実際にここで何を見つけようとしていますか?ここに表示されているすべてのコードをラップするdiv(?)が表示されます。私の推測では、 "フォルダ"を関連するボタンで包み込む別のラッピングのレイヤーがあります。それはその層を見るのに役立ちます。 –

+1

何を試しましたか?結果は何でしたか?良い質問をする方法のヘルプトピックをお読みください。あなた自身の問題を研究し、コードサンプルなどを見つけ、問題を解決するためのコードを書く必要があります。あなたがすべてを行い、まだそれを理解できない場合は、あなたの質問を編集し、あなたが行った研究からメモを追加してください。あなたが試したコードは[mcve]に減らしました。エラーメッセージなど。関連するHTMLを含め、HTMLとコードを適切にフォーマットすることも非常に重要です。 – JeffC

+0

セルバが私を助けました。 あなたのお役に立てていただきありがとうございます:-) –

答えて

0

"grid-row-element-name"にフォルダ名があり、cssSelectorでそのクラス名を使用しようとしているので、次のことを試してください。

List<WebElement> elements = driver.findElements(By.cssSelector("a.grid-row-element-name")); 
     String folderName = null; //name of the folder which you want to click. 

     for (WebElement ele : elements) { //Iterate over the loop 
      if (ele.getText().equalsIgnoreCase(folderName)) { 
       ele.click();//once the folder you want is found go for the click. 
      } 
     } 
     //OR 
     //To click on the last element try this 
     elements.get(elements.size()-1).click(); 
+0

これは大きな進歩です!私は今、要素が見つかりましたが、テキストは見つかりませんでした... –

+0

何か問題がありますか?あなた :-)誤って入力しをクリックし、完全なエラーログここ – selva

+0

過去これは大きな進歩であることができます!今では要素が見つかりましたが、テキストは見つかりませんでした... デバッグ中は、フォルダの量が正しいことがわかりますが、要素を見ると "RemoteWebElement"が表示されます以下の特性: foundBy = [FirefoxDriver:FirefoxのWINDOWS(6095e0ff-665b-479c-b934-cbf75b5d9603)オン] - > CSSセレクタ:a.grid行要素名ID = XXXXマウス= RemoteMouse 親= FirefoxDrive 私はテキストを見ることはできません.... –

0

あなたが作成した特定のテキストを持つ要素(フォルダ名)を探しているので、私は、フォルダ名を含むAタグを探して、このに近づくでしょう。

あなたの質問には言語でタグを付けていないので、以下はJavaです。必要に応じて、XPathを再利用するだけで、簡単に別の言語に変換できるはずです。

String folderName = "Eclipse111"; 
// create folder 
WebElement folder = driver.findElement(By.xpath("//a[text()='" + folderName + "']")); 
+0

セルヴァが私を助けてくれてありがとう! –

関連する問題