簡體   English   中英

如何獲得與通配符CSS選擇器匹配的第二個元素?

[英]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(); 或者,您可以在單擊它后添加標志類:

  • 單擊后,將“ seleniumClicked”類添加到按鈕
  • 然后將選擇器更改為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM