如何使用 Selenium 分別選擇具有相同類名的每個 div?
我們可以藉助 Selenium webdriver 分別選擇具有相同類名的每個 div。在 html 程式碼中,我們經常會發現多個 div 元素具有相同值的 class 屬性。
讓我們看看具有 div 標籤且 class 屬性設定了相同值的元素的 html 程式碼(如影像中突出顯示的那樣)。class 屬性的值為 - colsm-5 col-xs-8 store-details sp-detail paddingR0。
為了分別識別這些 div 元素中的每一個,我們將使用 findElements 方法並將 class 屬性的值作為引數傳遞給此方法。findElements 方法返回一個匹配元素列表。我們必須遍歷此列表並分別識別每個 div。
語法
List<WebElement> l = driver.findElements(By.className("store-details"));
示例
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; import java.util.List; public class DivSameCls{ public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); //implicit wait driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //URL launch driver.get("https://www.justdial.com/Bangalore/Bakeries"); // identify div elements with same class List<WebElement> l = driver.findElements(By.className("store-details")); // list iteration System.out.println("Elements are: "); for(int j = 0; j< l.size(); j++) { //identify separate div String v = l.get(j).getText(); System.out.println("Elements are: "); System.out.println(v); } //browser close driver.close(); } }
輸出
廣告