2
<ul class="cartItems">
  <li id="ba464302-4733-4a06-80af-44e315d98bc9" class="cartItem">
      <div class="thumbContainer">
           <span class="transferLinks">
     <a href="javascript:;" class="saveForLater">Save for later </a>

  <li id="199e3fff-f80c-4df4-a4ff-26edd804ee5c" class="cartItem">
  <div class="thumbContainer">
           <span class="transferLinks">
    <a href="javascript:;" class="saveForLater">Save for later </a>

「ul class」、「cartItems」内にある動的「li id」リスト内にある「saveForLater」クラスのすべての要素を個別に選択しようとしています (例: 0F347571a5-406c-49da-ac1f-37cf9aa2628b)。同封のコード。次のコードを試しました

  1. IWebElement cartItemByXpath = Driver.FindElement(By.XPath("//*[@class='cartItems']/li"));
  2. IWebElement cartItems = Driver.FindElement(By.CssSelector(".cartItems .cartItem .actionLinks .saveForLater"));

cartItems上記の 1 行目は、探していた「li id」ではなく、 の下のすべてのテキストのみを返します。上記の 2 行目はクラスを選択しますが、リストの他の「li id」の下saveForLaterにある残りのクラスにアクセスする必要があります。saveForLater「li id」は動的で、値が変化します。どんな入力でも大歓迎です。

4

1 に答える 1

0

一致するすべての要素リストを取得するために使用Driver.FindElementsし、必要に応じてリストをループします。

IList<IWebElement> cartItems = Driver.FindElements(By.CssSelector(".cartItems .cartItem .actionLinks .saveForLater"));

foreach (IWebElement cartItem in cartItems ) {
//your action on individual "cartItem"

}

お役に立てれば...

于 2012-12-13T07:17:52.677 に答える