selenium提供了很多用於定位元素的方法,首先我們自己需要知道元素有哪些屬性,這就需要用到安裝測試環境中firebug來定位
打開firefox瀏覽器,按下F12鍵,我們就可以看到如下圖所示的界面:

點擊中間紅框中的按鈕再點擊頁面上的元素,就可以在下面頁面代碼處看到對應的屬性,比如輸入框有id、class、name、value還有個tag屬性,除了value之外其他都可以作為定位該元素的方法。相關代碼如下:
driver.find_element_by_id("kw").send_keys('python')
driver.find_element_by_class_name("s_ipt").send_keys('python')
driver.find_element_by_name("wd").send_keys('python')
driver.find_element_by_tag_name("input").send_keys('python')
當然,有些屬性可能在一個web界面上有多個對應的值,這時候可以用find_elements_by_**來獲取后,再根據位置來定位,比如tag為input的有3個,當前的需要的輸入框在第二個,那么可以寫成如下:
driver.find_elements_by_tag_name("input")[1].send_keys('python')
一般在定位一個元素的時候,會通過他在web界面唯一屬性來定位。
當然定位元素的方法還有其他幾種:
1、xpath方法,這個方法在比較固定的web界面中是比較實用的,比如百度輸入框,可以通過下面來定位
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('python')
xpath方法可以是完整路徑,也可以是部分路徑,一般根據實際情況來設置,后面會專門講到
2、css方法,這個方法是最快速的查找元素方法,可以根據不同條件來定位元素,比如百度輸入框,可以通過下面的語句定位:
driver.find_element_by_css_selector('input.s_ipt').send_keys('python')
css定位手段靈活多變,后面會專門講到
3、如果元素是個鏈接,我們可以通過link方法來定位,比如百度首頁右上的一排元素,可以通過這種方式來定位,比如hao123網址:
driver.find_element_by_link_text('tj_trhao123').click
這些都需要經常的使用才能熟悉,不要急於求成。長時間不用自然也會忘掉
