2016-09-12 11 views
0

私はプレースホルダーのような要素を見つけようとしています。私は他の要素をこれにドラッグアンドドロップします。 HTMLセレンに複数のdivを持つ要素を見つける

<div class="value1" > <div class="value2" data-id="some_number" data-aura+"value"> 
<div class="place holder"> div2, div3 > Add component </div> 

<div class="row contentPanel" data-aura-render="53:56;a"><div class="col-lg-12" data-aura-rendered-by="54:56;a"> 
<div class="interactions siteforceDesignTimeRegion" data-region-name="content" data-allow-drop="true" data-item-id="87f9712-27f4-564-9445-fg30cf4321a7" data-aura-render="6:56;a" data-aura-class="siteforceDesignTimeRegion"> 
<div class="Placeholder siteRegion" data-aura-render="10:56;a" data-aura-class="forceDesignTimeEmptyRegion">Add components to this place</div> 
<!--render facet: 18:56;a--></div></div></div> 

私のコードで以下を試しました。それは実際にコンソールで動作します。しかし、私はコードでそれを使用したときに動作しません。誰かがcssselectorまたはxpathで回答を提供する場合に役立ちます。ありがとう。コメントから

driver.findElement(By.xpath("//div[contains(@class, 'row contentPanel')]")); 
+1

は、実際のHTMLを投稿してください、あなたの説明があまりにも不可解である –

+0

Add components to this region (Content) \t
< - 椎レンダリング:!18: 56; a - >
Ela

+0

あなたのコードを試したときに発生したエラーは何ですか? –

答えて

2

: - :いいえ、そのような要素:要素を見つけることができません:それはこのerror..org.openqa.selenium.NoSuchElementExceptionをスロー

次があるかもしれませんこの理由は、exceptionのようになります。 -

  • あなたは要素を検索しようとしているときに、以下のようにDOMに存在する要素まで待機するWebDriverWaitを実装する必要がありますので、それは、DOMには存在しないことがあります -

    WebDriverWait wait = new WebDriverWait(driver, 10); 
    WebElement el = wait.until(ExpectedConditions.presenceOf‌​ElementLocated(By.cs‌​sSelector("div.row.c‌​ontentPanel"))); 
    
  • すると、この素子であってもよい任意の内側にありますframe/iframe。それがある場合は、以下のように必要な要素を見つける前にframe/iframeことを切り替える必要があります: -

    WebDriverWait wait = new WebDriverWait(driver, 10); 
    
    //Wait until frame/iframe to available and then switch to it 
    wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("your frame id or name")); 
    
    //Now find the desired element 
    WebElement el = wait.until(ExpectedConditions.presenceOf‌​ElementLocated(By.cs‌​sSelector("div.row.c‌​ontentPanel"))); 
    
    //Once all your stuff done with this frame/iframe need to switch back to default for further stuff 
    driver.switchTo().defaultContent(); 
    
+1

素晴らしいです:)私は私たちのウェブサイトが今いくつかの問題を抱えているので、私は他の場所でこれをテストしました。 – Ela

関連する問題