上一篇博客selenium+python自動化測試(二)–使用webdriver操作瀏覽器講解了使用webdriver操作瀏覽器的各種方法,可以實現對瀏覽器進行操作了,接下來就是對瀏覽器頁面中的元素進行操作,操作頁面元素,首先要找到操作的元素,對元素進行定位
查看頁面源碼
要定位頁面元素,需要找到頁面的源碼,IE瀏覽器中,打開頁面后,在頁面上點擊鼠標右鍵,會有“查看源代碼”的選項,點擊后就會進入頁面源碼頁面,在這里就可以找到頁面的所有元素
使用Chrome瀏覽器打開頁面后,在瀏覽器的地址欄右側有一個圖標,點擊這個圖標后,會出現許多菜單項,選擇更多工具里的開發者工具,就會出現頁面的源碼,不同版本的瀏覽器菜單選項可能不同,但是都會在開發者工具里找到頁面的源碼
Firefox瀏覽器打開頁面后,在右鍵菜單里也可以找到“查看頁面源代碼”的選項。在Firefox中,可以使用瀏覽器自帶的插件查看定位元素,在Firefox的附加組件里搜索firebug進行下載,安裝firebug組件后會在瀏覽器的工具欄中多出一個小蟲子的圖標,點擊這個圖標就可以打開組件查看頁面源碼,打開后如下圖所示

以百度首頁搜索頁面為例,看一下webdriver定位元素的八種方式
使用id定位
在頁面源碼中找到搜索輸入框的元素定義
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
可以看到輸入框有一個有一個id的屬性,調用find_element_by_id()根據id屬性來找到元素,參數為屬性的值
input_search = driver.find_element_by_id("kw")使用name定位
使用find_element_by_name()根據name屬性找到元素,參數為name屬性的值
搜索框有一個name=”wd”的屬性,使用name查找搜索輸入框元素
input_search = driver.find_element_by_name("wd")使用className定位
使用find_element_by_class_name()根據className屬性找到元素,參數為className屬性的值
搜索框有一個class=”s_ipt”的屬性,使用className查找元素
input_search = driver.find_element_by_class_name("s_ipt")使用tagName定位
使用find_element_by_tag_name()根據tagName屬性找到元素,參數為元素標簽的名稱
每個頁面的元素都有一個tag,搜索框的標簽為input,有時候一個頁面里有許多相同的標簽,所以用這種方法找到的元素一般都不準確,除非這個元素使用的標簽在這個頁面里是唯一的。一般不會使用這種方式來定位元素
input_search = driver.find_element_by_class_name("input")使用link_text定位
新聞熱點
疑難解答