java+selenium——查找定位元素,elements復數定位(driver.findElementsByClassName("mnav");)002


elements復數定位:


在上面的例舉的八中基本定位方式種,都有對應的復數形式,分別是下面這些:

 

id復數定位find_elements_by_id()


name復數定位find_elements_by_name()


class復數定位find_elements_by_class_name()


tag復數定位find_elements_by_tag_name()


link復數定位find_elements_by_link_text()


partial_link復數定位find_elements_by_partial_link_text()


xpath復數定位find_elements_by_xpath()


css復數定位find_elements_by_css_selector()


這些復數定位方式每次取到的都是具有相同類型屬性的一組元素,所以返回的是一個list隊列,我們也可以利用這個去定位單個的元素。

 

 

==================================================================================================================

 

 

比如百度首頁種,右上角有新聞、視頻、地圖、貼吧等一些鏈接,我們通過f12查看源碼可以發現,這些鏈接都有共同的class, class="mnav"。

 

舉個例子,比如定位排在第六個的學術,可以這樣定位:driver.find_elements_by_class_name("mnav")[5].click()

還可以通過css的復數定位寫法:driver.find_elements("css selector",".mnav")[6].click()

當然,也可以借助pop()函數,一般pop()或pop(-1)表示獲取元素種的最后一個,pop(2)表示第三個:

driver.find_elements("css selector",".mnav").pop().click()

 

======================================================================================================

 

 

package rjcs;

import java.util.List;

import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.testng.annotations.Test;

import com.thoughtworks.selenium.SeleneseTestNgHelper;

public class findby 
{
    
    public static void main(String[] args)
    
    {
         System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");    //設置火狐的安裝路徑,防止系統找不到
            
         FirefoxDriver driver = new FirefoxDriver();        //初始化FireFox瀏覽器實例,並打開瀏覽器
         
        try
        {
             driver.manage().window().maximize();         //最大化窗口
             
             Thread.sleep(5000);        
             
             driver.manage().window().maximize();         //最大化窗口
             
             Thread.sleep(5000);
        
             driver.get("https://www.baidu.com");                    //打開一個網址,方法一             
        
             Thread.sleep(5000);
             
             
             
             driver.findElementsByClassName("mnav").get(2).click();    //打開地圖這個鏈接
             
             
             //List<WebElement> myList = driver.findElementsByClassName("mnav");   //獲取class的這個數組
             //myList.get(0).click();         //打開新聞這個鏈接
             
             Thread.sleep(5000);            
             
        }catch (Exception e) 
        {
            e.printStackTrace();
        }finally 
        {
            driver.quit();
        
         }
   }    

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM