[英]How do I get the second element which matches a wildcard css selector?
我有一個頁面,其中兩個按鈕在按鈕A模式為“ ABCNN_xxx”和按鈕B id為“ ABC(NN + 1)_xxx”的模式下共享相似的ID,其中NN是一個數字,該數字在其他具有相同按鈕的頁面上是不同的邏輯。 我的腳本需要在不同頁面上通用獲取這些按鈕,因此我使用通配符css選擇器。 但是,由於兩個按鈕共享相同的模式,所以通配符選擇器將僅捕獲它看到的第一個按鈕(A,NN號較小),但找不到第二個按鈕。
我試圖將[2]放在選擇器后面,但似乎無法正常工作。 我正在使用下面的CSS選擇器。 這將使我獲得第一場比賽,但不會獲得其余比賽。
driver.findElement(By.cssSelector("img[id^='ABC'][id$='_xxx']")).click();
除了第一次讓我獲得ABC36_xxx之外,我還希望第二次通話具有ABC37_xxx,而不是返回第一個結果。 我應該如何實現我的目標?
您可以選擇將所有使用findElement 秒的陣列和環比他們: driver.findElements(By.cssSelector("img[id^='ABC'][id$='_xxx']")).click();
或者,您可以在單擊它后添加標志類:
driver.findElements(By.cssSelector("img[id^='ABC'][id$='_xxx']:not(.seleniumClicked)")).click();
如果您確定使用定位符: By.cssSelector("img[id^='ABC'][id$='_xxx']")
並且不止一個,請通過以下方式收集它們:
List<WebElement> elmnts = driver.findElements(By.cssSelector("img[id^='ABC'][id$='_xxx']"));
這是第二個要素:
elmnts.get(1).click();
導入此:
import java.util.List;
import org.openqa.selenium.WebElement;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.