記一個Selenium自動化測試網頁

今天想跟你們分享的是Selenium自動化測試網頁,就是關於selenium的自動化測試一些基礎的東西,若有不對的地方請多多指教。css

1、安裝環境python

一、Python環境web

安裝完成後經過Windows命令提示符CMD輸入「python」,查看是否安裝成功面試

二、安裝setuptools與pipshell

setuptools是PEAK(Python enterprise Application Kit)的一個副項目,是python的distutilsde的加強工具,能夠更方便建立和發佈python包,特別是對其餘包有依賴的狀況;瀏覽器

pip是一個安裝和管理python包的工具,經過pip來安裝python包將變得很簡單,省去了繁瑣的過程,pip的安裝依賴於setuptools,安裝pip以前須要先安裝setuptools;cookie

三、下載selenium包框架

pip install selenium函數

4.下載瀏覽器驅動工具

火狐和谷歌各有各的驅動

下載連接:https://www.seleniumhq.org/do...

簡單示例

示例名稱: test_python_org_search.py

   import unittest

       #引入 unittest 模塊是基於JAVAJUnit的Python內置的模塊。 該模塊提供了一個框架去組織測試用例

  from selenium import webdriver

  #selenium.webdriver 模塊提供了全部WebDriver的實現

  from selenium.webdriver.common.keys import Keys

  # Keys 類提供全部的鍵盤按鍵操做

  class PythonOrgSearch(unittest.TestCase):

  #測試類繼承自 unittest.TestCase. 繼承 TestCase 類是告訴 unittest 模塊該類是一個測試用例

  def setUp(self):

  self.driver = webdriver.Firefox()

  #SetUp 方法是初始化的一部分,建立了一個Firefox WebDriver的一個實例

  def test_search_in_python_org(self):

  driver = self.driver

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

  #driver.get 方法將會根據方法中給出的URL地址打開該網站

  self.assertIn("Python", driver.title)

  #使用assert斷言的方法判斷在頁面標題中是否包含 「Python」

  elem = driver.find_element_by_name("q")

  #找到name爲q的DOM節點

  elem.send_keys("pycon")

  #在name爲q的DOM節點中,輸入pycon

  elem.send_keys(Keys.RETURN)

  #按enter鍵

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

  def tearDown(self):

  self.driver.close()

  #tearDown 方法會在每個測試方法執行以後被執行。 該方法能夠用來作一些清掃工做,好比關閉瀏覽器。 固然你也能夠調用 quit 方法代替`close`方法

  #區別:quit 將關閉整個瀏覽器,而`close`只會關閉一個標籤頁

  if __name__ == "__main__":

  unittest.main()

  #入口函數

可直接在shell中運行:python test_python_org_search.py

 經常使用方法講解

 1.打開一個頁面

  driver.get("http://www.baidu.com")

  WebDriver 將等待,直到頁面徹底加載完畢(實際上是等到 onload 方法執行完畢), 而後返回繼續執行你的腳本。 值得注意的是,若是你的頁面使用了大量的Ajax加載, WebDriver可能不知道何時頁面已經徹底加載。

2.與頁面交互

  WebDriver 提供了大量的方法幫助你去查找元素,例如

 <input type="text" name="passwd" id="passwd-id" />

  可經過如下方法查找:

       element = driver.find_element_by_id("passwd-id")

  element = driver.find_element_by_name("passwd")

  element = driver.find_element_by_xpath("//input[@id='passwd-id']")

  你還能夠經過連接的文本查找他,須要注意的是,這個文本必須徹底匹配。 當你使用XPATH時,你必須注意,若是匹配超過一個元素,只返回第一個元素。 若是上面也沒找到,將會拋出 NoSuchElementException異常。

  執行一些操做,例如:

  在文本框中輸入一些內容:element.send_keys("some text")

  清除內容:element.clear()

  選擇下拉框:WebDriver的支持類有一個叫作 Select的類

  from selenium.webdriver.support.ui import Select

  select.select_by_index(index)根據option的順序

  select.select_by_visible_text("text")根據文本

  select.select_by_value(value)根據它的value值

  取消選擇:select.deselect_all()

  提交選擇:element.submit()

 3.拖放

   element = driver.find_element_by_name("source")

  target = driver.find_element_by_name("target")

  from selenium.webdriver import ActionChains

  action_chains = ActionChains(driver)

  action_chains.drag_and_drop(element, target).perform()

 4.彈出對話框處理方式

  alert = driver.switch_to_alert()

  switch_to_alert()   #定位彈出對話

  text()    #獲取對話框文本值

  accept() #至關於點擊"確認"

  dismiss() #至關於點擊"取消"

  send_keys() # 輸入值,這個alert和confirm沒有輸入對話框,因此這裏就不能用了,因此這裏只能使用在prompt這裏。

       若是對軟件測試、接口測試、自動化測試、面試經驗交流。感興趣能夠加軟件測試交流:1085991341,還會有同行一塊兒技術交流。

 5.操做cookie

  打開一個頁面 driver.get(「http://www.example.com」)

  如今設置Cookies,這個cookie在域名根目錄下(」/」)生效 cookie = {‘name’ : ‘foo’, ‘value’ : ‘bar’} driver.add_cookie(cookie)

  如今獲取全部當前URL下可得到的Cookies driver.get_cookies()

6.查找元素

  find_element_by_id

  find_element_by_name

  find_element_by_xpath

  find_element_by_link_text

  find_element_by_partial_link_text

  find_element_by_tag_name

  find_element_by_class_name

  find_element_by_css_selector

以上內容但願對你有幫助,有被幫助到的朋友歡迎點贊,評論

相關文章
相關標籤/搜索