通過ID查找元素
創(chuàng)新互聯(lián)建站是專業(yè)的農(nóng)安網(wǎng)站建設(shè)公司,農(nóng)安接單;提供做網(wǎng)站、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行農(nóng)安網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!通過頁面元素的ID來查找元素是最為推薦的方式。W3C標(biāo)準(zhǔn)推薦開發(fā)人員為每一個頁面元素都提供一個獨一無二的ID元素,因此開發(fā)人員應(yīng)避免單個頁面上的所有元素存在ID不唯一的情況和元素ID是自動生成的情況。
頁面元素的ID被作為選的識別屬性,因為這是最快的識別策略。
driver.findElement(By.id("Title")).sendKeys("test content");//如果需要,可用WebElement先存儲起來, 然后再進(jìn)行相應(yīng)操作。
2.通過Name查找元素
WebElement searchBox = driver.findElement(By.name("wd"));
searchBox.sendKeys("java");
searchBox.submit();//提交
3.通過ClassName查找元素
4.通過TagName查找元素
與前述幾個方式略有不同。其原因是同一個頁面上具有相同TagName的元素可能一個都沒,也可能有多個。因此建議在使用TagName為查找元素的條件時,使用findElements()來替代findElement()函數(shù)。
List
System.out.println("There are "+scriptList.size()+" scripts on Xiaomi's page!");
5.通過LinkText查找元素
eg.提交
WebElement aboutGenExam = driver.findElement(By.linkText("提交"));
aboutGenExam.click();
6.通過PartialLinkText查找元素
如上,百度頁面下方有“關(guān)于百度”的鏈接地址,其HTML代碼如上,可通過anchor上的部分文本信息來查找該元素并進(jìn)行操作, 如通過“關(guān)于”二字來查找該鏈接地址。
driver.get("www.baidu.com");
WebElement aboutLink = driver.findElement(By.partialLinkText("關(guān)于"));
aboutLink.click();
findElement()方法只會返回頁面上第一個滿足partialLinkText為“關(guān)于”的元素。如果希望找到頁面上所有包含部分文本為"關(guān)于"的鏈接元素,則使用findElements()方法來替代。
7.使用CSS選擇器查找元素
eg.需根據(jù)實際情況來判斷。
WebElement about = driver.findElement(By.cssSelector("#lsb-id"));
aboutLink.click();
8.通過Xpath查找元素
xpath很強(qiáng)悍,但定位性能不是很好,所以還是盡量少用。如果確實少數(shù)元素不好定位,可以選擇xpath或cssSelector。
9.通過JQuery查找元素(p34-39)
JQuery允許開發(fā)人員通過簡單的步驟快速識別頁面上的元素。在使用JQuery簡化Selenium查找元素之前 ,需要首先確認(rèn)頁面是否已經(jīng)加載了JQuery庫。在這里分情況進(jìn)行闡述,一種情況是頁面本身已經(jīng)加載了JQuery庫,另一種情況是頁面本身并沒加載JQuery庫。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。