<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>
我正在尝试单独选择位于动态"li id"列表中的"saveForLater"类的所有元素(例如:0F347571a5-406c-49da-ac1f-37cf9aa2628b)在随附代码中的"ul 类"、"cartItems"内。 我尝试了以下代码
-
IWebElement cartItemByXpath = Driver.FindElement(By.XPath("//*[@class='cartItems']/li"));
-
IWebElement cartItems = Driver.FindElement(By.CssSelector(".cartItems .cartItem .actionLinks .saveForLater"));
上面的第 1 行仅返回 cartItems
下的所有文本,而不是我正在寻找的"li id"上面的第 2 行将选择saveForLater
类,但我仍然需要在列表中的其他"li id"下访问saveForLater
类的其余部分。"li id"是动态的,值会发生变化。 任何意见将不胜感激。
使用 Driver.FindElements
获取所有匹配的元素列表,然后根据需要遍历列表。
IList<IWebElement> cartItems = Driver.FindElements(By.CssSelector(".cartItems .cartItem .actionLinks .saveForLater"));
foreach (IWebElement cartItem in cartItems ) {
//your action on individual "cartItem"
}
希望这有帮助...