0

テストを実行するときに、適切なカテゴリ (bn) が選択され、ページでアクティブになっているかどうかを判断したいと考えています。これは によって行われ<li class="active">ます。私のテストデータでは、すべての製品がすべてのカテゴリに一致しているため、いつタブをアクティブにする必要があるかがわかりますが、これが正しいと主張する方法がわかりません。誰でも正しい方向に私を助けることができますか? :)

HTMLコードは次のとおりです。

<div class="tabs">
    <h3><span>Hovedkategorier</span></h3>
    <div class="content">
      <ul class="shortcuts">
        <li><a href=""><span class="one"><span class="two">Text 1</span></span></a></li>
        <li class="last"><a href="?tag=weekly1"><span class="one"><span class="two">Text 2</span></span></a></li>
      </ul>
      <ul class="main">
        <li><a href="?bn=10000"><span class="one"><span class="two">Text 3</span></span></a></li>
        <li><a href="?bn=10306"><span class="one"><span class="two">Text 4</span></span></a></li>
        <li><a href="?bn=10723"><span class="one"><span class="two">Text 5</span></span></a></li>
        <li class="active"><a href="?bn=10719"><span class="one"><span class="two">Text 6</span></span></a></li>
        <li><a href="?bn=10190"><span class="one"><span class="two">Text 7</span></span></a></li>
        <li><a href="?bn=10444"><span class="one"><span class="two">Text 8</span></span></a></li>
        <li><a href="?bn=10431"><span class="one"><span class="two">Text 9</span></span></a></li>
        <li class="last"><a href="?bn=10560"><span class="one"><span class="two">Text 10</span></span></a></li>
      </ul>
    </div>
  </div>
4

2 に答える 2

0

私があなたを正しく理解したかどうかはわかりませんが、私の理解では、あなたは知っているText 6href="?bn=10719"、アクティブなタブであるべきです。したがって、 text または href を使用してそれを見つけることができ、その親<li>タグに実際に class があるかどうかを確認しactiveます。

// using text is not applicable in your case, as they will be in different languages.
// WebElement tab = driver.findElements(By.xpath("//a[text()='Text 6']/.."));

int number = 10719;
WebElement liActive = driver.findElement(By.xpath(".//a[@href='?bn=" + number + "']/..")); // use '/..' to get <a>'s parent, which is the <li> 
String classNames = liActive.getAttribute("class");

// using whatever testing framework you prefer
// assert true that
// classNames.toLowerCase().contains("active")

// if you are sure that active will be the only class for li, you can check equality
// classNames.toLowerCase().Equals("active")
于 2013-07-11T07:55:26.500 に答える
0

次のように、クラス名で要素を選択することを検討してください。

List<WebElement> activeListElements = driver.findElements(By.className("active"));

<a>次に、次の内部を見つける必要があります<li class="active">

List<WebElement> activeLinks = activeListElements.findElements(By.tagName("a"));

その後、次を使用してその内容を確認できますWebElement.getText()

String url = element.getAttribute("href");
assertThat(url, is("?bn=10000")); // for recent JUnit 4.x versions
assertEquals("?bn=10000", url); // for older versions of JUnit
于 2013-07-11T07:47:00.877 に答える