一. Selenium自動登錄 代碼如下所示: [python] view plaincopy
代碼非常簡單,其中的原理也很簡單:通過driver訪問Firefox瀏覽器及URL,同時find_element_by_name找到網(wǎng)頁HTML源代碼中對應(yīng)的值并填充,最后調(diào)用Keys實現(xiàn)模擬操作鍵盤Keys.RETURN實現(xiàn)。該斷言結(jié)果是不存在的,主要是用于防止關(guān)閉瀏覽器。
同時輸入用戶名或密碼錯誤會提示,其實就是瀏覽器。 原理解釋 兩年前在學(xué)習(xí)C#網(wǎng)絡(luò)編程時,我成寫過Winform自動訪問163郵箱的文章: C# 網(wǎng)絡(luò)編程之網(wǎng)頁自動登錄 (一).使用WebBrower控件模仿登錄 通過對比,Python簡短高效的優(yōu)勢就顯示出來的,其中163郵箱登錄界面HTML源碼也沒有修改和修復(fù)過,這是我意料之外的。 其中通過查找該登錄頁面發(fā)現(xiàn)用戶名Id為“idInput”,密碼Id為“pwdInput”,登錄按鈕ID為“l(fā)oginBtn”。如圖id和name: <input class="" tabindex="1" title="請輸入賬號" id="idInput" name="username" type="text" value="".. <input class="" tabindex="2" title="請輸入密碼" id="pwdInput" name="password" type="password" /> <button id="loginBtn" class="" type="submit">登 錄</button> 如下圖所示一目了然: 這部分文章雖然簡單,但是作為基礎(chǔ)文章在合適不過了,同時通過webdriver的driver.find_element_by_name引出下面的基礎(chǔ)知識介紹,畢竟實踐例子才是學(xué)習(xí)Selenium的動力源泉。
同樣下面這段代碼可實現(xiàn)自動登錄CSDN,是不是可以通過它實現(xiàn)暴力破解密碼呢? [python] view plaincopy
二. Locating Elements介紹PS:第一次上傳翻譯博文,如果有錯誤還請見諒! 官網(wǎng)地址:http://selenium-python./locating-elements.html 這里有各種策略用于定位網(wǎng)頁中的元素(locate elements),你可以選擇最適合的方案,Selenium提供了一下方法來定義一個頁面中的元素:
[python] view plaincopy
[python] view plaincopy
1 Locating By Id 當(dāng)你知道一個元素的id屬性時使用該功能。有了這個方法,用id屬性值匹配時第一個被定位的元素將被返回。如果沒有元素匹配id值,一個NoSuchElementException異常將會拋出。例如,參考這個頁面源碼: [html] view plaincopy
[python] view plaincopy
2 Locating By Name 當(dāng)你知道一個元素的name屬性時使用該方法。通過該方法,第一個滿足name屬性值的元素將被匹配返回,如果沒有元素匹配,將拋出一個NoSuchElementException異常。例如,參考下面源碼: [html] view plaincopy
[python] view plaincopy
[python] view plaincopy
3 Locating By XPath
|
|
|