碼迷,mamicode.com
首頁 > 編程語言 > 詳細

《手把手教你》系列技巧篇(十)-java+ selenium自動化測試-元素定位大法之By class name(詳細教程)

時間:2021-07-28 21:35:15      閱讀:0      評論:0      收藏:0      [點我收藏+]

標簽:如何使用   特殊   color   pat   控制臺   range   ora   tag   自動化   

1.簡介

 按宏哥計劃,本文繼續介紹WebDriver關于元素定位大法,這篇介紹By ClassName??吹絀D,NAME這些方法的講解,小伙伴們和童鞋們應該知道,要做好Web自動化測試,最好是需要了解一些前端的基本知識。有了前端知識,做元素定位會很輕松,同樣寫網絡爬蟲也很有幫助,話題扯遠了,回到Selenium自動化測試。

2.常用定位方法(8種)

(1)id
(2)name
(3)class name(今天講解)
(4)tag name
(5)link text
(6)partial link text
(7)xpath
(8)css selector

3.自動測試實戰:百度搜索:北京宏哥

跟隨宏哥的腳步,有了前邊兩篇的經驗,想必這個應該很簡單的了吧!宏哥這里就不贅述了,沒有前菜直接上正菜。 

3.1代碼設計

通過主要步驟把代碼都設計好了,宏哥只需要將其串起來,調試腳本即可。如下圖所示:

技術圖片

3.2參考代碼

package lessons;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author 北京-宏哥
 *
 * 2021年7月21日
 */
public class ByClassName {
    public  static  void  main(String [] args) throws InterruptedException {
         
        System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驅動路徑
 
        WebDriver driver = new ChromeDriver ();
        //最大化窗口  
        driver.manage().window().maximize();  
        driver.get("http://wwww.baidu.com");
        
        //By name 定位
        WebElement wid = driver.findElement(By.className( "s_ipt" ));
        wid.sendKeys("北京宏哥");
        driver.findElement(By.id( "su" )).click();
        //定位到文本,將文本高亮顯示
        //創建一個JavascriptExecutor對象
        JavascriptExecutor js =(JavascriptExecutor)driver;
 
        //新聞文本高亮顯示顏色
        js.executeScript ( "arguments[0].setAttribute(‘style‘, arguments[1]);",wid,"background: orange; border: 2px solid red;");
 
        Thread.sleep (5000);
 
        driver.quit();
    }
}

3.3運行代碼

1.運行代碼,右鍵Run AS->java Application,控制臺輸出,如下圖所示:

技術圖片

2.運行代碼后電腦端的瀏覽器的動作,如下小視頻所示:

4.小結

 好了,今天到這里通過name定位就介紹完了,其實很簡單,就是找元素的name,一般來說name不都是唯一的,那就需要換其他的定位方法了,當然了特殊的另說。一般都是絕大多數,特殊是個例,也就是我們常說的另類,如果目標元素節點有這個name屬性,我們就采用By name,如果沒有,就換成其他方法,例如id,例如XPath,一般XPath是萬能的。感謝你耐心的閱讀。

5.拓展

有的小伙伴或者童鞋們,可能覺得今天學習了如何使用class name定位,就初生牛犢不怕虎的將”百度一下“的按鈕也使用class name來定位了,代碼設計如下:

技術圖片

結果報錯了(Exception in thread "main" org.openqa.selenium.InvalidSelectorException: invalid selector: Compound class names not permitted),控制臺報錯如下圖所示:

技術圖片

電腦端的瀏覽器,電腦端瀏覽器百度輸入框里輸入“北京宏哥”,就卡住沒有反應,不會點擊“百度一下”按鈕。如下小視頻所示:

原因分析:根據代碼報錯和腳本測試回放,發現在定義文本輸入框是沒有問題,但是在定位百度一下這個按鈕就出問題。報錯提示告訴了我們原因:無效的selector,不允許組合的class name。根本原因是這個className "bg s_btn_wr"有空格,所以,以后遇到classname有空格的,就換成別的定位元素方法。這里解釋下selector的意思,有時候有些文章或說localtor,特別是Selenium for Python就會說localtor,localtor就像我們寄快遞的地址一樣。這里localtor = By + 各種方法對應的值。By我們知道有8中方法,所有對應有八種值,這里值就是錯誤信息中提到的selector,明白了吧。

《手把手教你》系列技巧篇(十)-java+ selenium自動化測試-元素定位大法之By class name(詳細教程)

標簽:如何使用   特殊   color   pat   控制臺   range   ora   tag   自動化   

原文地址:https://www.cnblogs.com/du-hong/p/15039351.html

(0)
(0)
   
舉報
評論 一句話評論(0
登錄后才能評論!
? 2014 mamicode.com 版權所有  聯系我們:gaon5@hotmail.com
迷上了代碼!
4399在线看MV_久久99精品久久久久久久久久_成人又黄又爽又刺激视频_能收黄台的app不收费