標簽:如何使用 特殊 color pat 控制臺 range ora tag 自動化
按宏哥計劃,本文繼續介紹WebDriver關于元素定位大法,這篇介紹By ClassName??吹絀D,NAME這些方法的講解,小伙伴們和童鞋們應該知道,要做好Web自動化測試,最好是需要了解一些前端的基本知識。有了前端知識,做元素定位會很輕松,同樣寫網絡爬蟲也很有幫助,話題扯遠了,回到Selenium自動化測試。
(1)id
(2)name
(3)class name(今天講解)
(4)tag name
(5)link text
(6)partial link text
(7)xpath
(8)css selector
跟隨宏哥的腳步,有了前邊兩篇的經驗,想必這個應該很簡單的了吧!宏哥這里就不贅述了,沒有前菜直接上正菜。
通過主要步驟把代碼都設計好了,宏哥只需要將其串起來,調試腳本即可。如下圖所示:
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(); } }
1.運行代碼,右鍵Run AS->java Application,控制臺輸出,如下圖所示:
2.運行代碼后電腦端的瀏覽器的動作,如下小視頻所示:
好了,今天到這里通過name定位就介紹完了,其實很簡單,就是找元素的name,一般來說name不都是唯一的,那就需要換其他的定位方法了,當然了特殊的另說。一般都是絕大多數,特殊是個例,也就是我們常說的另類,如果目標元素節點有這個name屬性,我們就采用By name,如果沒有,就換成其他方法,例如id,例如XPath,一般XPath是萬能的。感謝你耐心的閱讀。
有的小伙伴或者童鞋們,可能覺得今天學習了如何使用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