1

id="prog_bg"orが存在する場合に if 条件を付けてからclass="progress_box_bg"、残りのコードを実行します。DOMは以下のとおりです。

<div id="wizard">
 <div class="quote_header">
 <div class="items">
      <div id="top-line" style="display: block;">
            <div class="back_box">
             <div class="progress_box">
                 <div id="prog_bg" class="progress_box_bg" style="width: 75px;"></div>
             </div>
             </div>
        <div id="service-div" class="page" style="padding-top:45px; >">
        <div id="propertytype-div" class="page">

多くのオプションを試してみましたが、うまくいきません。みんな私にそれをどうやって教えてくれますか?

  1. if (var.equals(driver.findElement(By.tagName("body")).getText().contains("prog_bg")))
  2. try { if (selenium.getHtmlSource().matches("^[\\s\\S]*prog_bg[\\s\\S]*$")) break; } catch (Exception e) {};
  3. if(driver.getPageSource().matches("^[\\s\\S]*prog_bg[\\s\\S]*$"))
  4. if(driver.findElement(By.id("prog_bg")).isDisplayed())
  5. if (driver.findElement(By.className("progress_box_bg")).isDisplayed())

ありがとう、サチン

4

3 に答える 3

0

このようなことを試してみませんか?Assert を if() に置き換えることができます

boolean ispresent= driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*prog_bg:[\\s\\S]*$");//TODO: Make this dynamic
Assert.assertEquals(true, ispresent);

boolean ispresent= driver.findElement(By.id("prog_id"))
Assert.assertEquals(true, ispresent);
于 2013-01-23T22:16:19.587 に答える
0

4番と5番は右側の線路です。ただし、 DOM での存在isDisplayed()を確認したいだけの場合は、呼び出すべきではありません。DOM 内の要素の存在を確認してから、その要素がユーザーに表示されるかどうかを確認しますisDisplayed()

代わりに、要素自体を見つけようとする必要があります。

if(driver.findElement(By.id("prog_bg")) || driver.findElement(By.className("progress_box_bg")) {
/*Execute code here*/
}

また、要素の属性はページの本文のテキストには表示されず、DOM にのみ表示されることに注意してください。数字の 1、2、3 のようにこれらの要素を見つけようとしても、まったく無駄です。

于 2013-05-08T17:47:02.573 に答える