實(shí)例分析

2021-06-24 16:00 更新

?selenium.webdriver ?模塊提供了所有 ?WebDriver?的實(shí)現(xiàn),現(xiàn)在支持的?WebDriver?的實(shí)現(xiàn)有 ?Firefox?,?Ie?,?Chrome?,?Remote?。Keys?類提供了鍵盤的代碼(回車,?ALT?,?F1?等等)。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

然后我們創(chuàng)建一個(gè)?Firefox?的實(shí)例:

  driver = webdriver.Firefox()

?driver.get?方法會導(dǎo)向給定的URL的頁面,?WebDriver?會等待頁面完全加載完(就是?onload?函數(shù)被觸發(fā)了),才把程序的控制權(quán)交給你的測試或者腳本。 但是如果你的頁面用了太多的AJAX,那么這個(gè)機(jī)制就沒什么用了,因?yàn)樗恢理撁娴降资鞘裁磿r(shí)候加載完。

  driver.get("http://www.python.org")

?WebDriver?提供了一系統(tǒng)類似于?find_element_by_*?的方法來尋找頁面元素,例如,我們利用?find_element_by_name?方法,通過元素的?name?屬性來定位一個(gè)文本輸入框元素。 更詳細(xì)的尋找元素的方法可以參閱 selenium 元素定位:

  elem = driver.find_element_by_name("q")

接著我們發(fā)送了一些字符,類似于用鍵盤直接輸入。特殊的鍵盤符我們可以導(dǎo)入?selenium.webdriver.common.keys?,然后用?Keys?類來表示:

elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)

提交頁面之后我們應(yīng)該確認(rèn)一下是否有返回,為了確定有東西返回,我們在這里下一個(gè)斷言:

  assert "No results found." not in driver.page_source

最后瀏覽器窗口被關(guān)閉了,你也可以調(diào)用?quit?方法來代替?close?,區(qū)別在于?quit?會退出整個(gè)瀏覽器,而?close?只會關(guān)閉一個(gè)標(biāo)簽,但是如果瀏覽器只有一個(gè)標(biāo)簽,那么這兩個(gè)方法完全一樣,都會關(guān)閉整個(gè)瀏覽器。

  driver.close()


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號