2

私が同様の質問を投稿した理由についてコメントしないでください。私は多くのことを試しましたが、何も機能していません。以下はHTMLです

    <div id="businessSettingsColumn1">
       <div class="sectionLink"> 

       <a href="serviceprovider/30015514/settings/details">Business details</a>
       </div>
      <div class="sectionLink">
        <a href="serviceprovider/30015514/settings/hours">Operating hours</a>
      </div>
     <div class="sectionLink">
     <a href="settingsserviceproviderleave.action?purpose=closed">Closed dates</a>
     </div>
     <div class="sectionLink">
      <a href="serviceprovider/30015514/settings/booking/notifications">Appointment            notifications</a>
  </div>

試した 2 番目のリンクをクリックする必要があります

1)webdriver.findElement(By.partialLinkText("Operating hours")).click();

2)webDriver.get(mylement.findElement(By.tagName("a")).getAttribute("href"));

3)

List<WebElement> businessLinks= busCol.findElements(By.className("sectionLink"));

    for(WebElement bLink :businessLinks) {
    if(bLink.getText().contains("Operating hours")) {

    bLink.findElement(By.tagName("a")).click();
    }
            }

4) Action Builder を使用してマウスを動かし、クリックする

また、これを3回続けて実行すると、要素がクリックされました

webdriver.findElement(By.partialLinkText("Operating hours")).click();
webdriver.findElement(By.partialLinkText("Operating hours")).click();
webdriver.findElement(By.partialLinkText("Operating hours")).click();

Firefox バージョン 25.0 と Selenium バージョン 2.35.0 を使用しています。面白いのは、sysout を実行すると値が出力され、webdriver を使用して URL を取得しようとすると、「要素がキャッシュに見つかりません。ページが検索されてから変更された可能性があります」というメッセージが表示されることです。リンクのみの静的ページなので、クリックできない理由がわかりません..どんな助けでも大歓迎です。

4

2 に答える 2

2

要素をクリックする前に、その要素で focus() を呼び出してみることはできますか?

于 2013-11-27T09:35:18.337 に答える
1

これは通常、要素がある時点では存在していたが、その後何かが発生し、何らかの理由で存在しなくなったために発生します。たとえば、ページが AJAX 呼び出しを行うときに、これが頻繁に発生します。

セレンが要素の準備ができていることを確認できるように、いくつかの待機を追加しようとしましたか?

于 2013-11-15T04:13:18.877 に答える