成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Selenium自動(dòng)化測(cè)試網(wǎng)頁(yè)

elva / 474人閱讀

摘要:當(dāng)你使用時(shí),你必須注意,如果匹配超過一個(gè)元素,只返回第一個(gè)元素。操作打開一個(gè)頁(yè)面現(xiàn)在設(shè)置,這個(gè)在域名根目錄下生效現(xiàn)在獲取所有當(dāng)前下可獲得的查找元素以上是相關(guān)的基礎(chǔ)內(nèi)容,下一期更新使用頁(yè)面對(duì)象模式的示例一起越來(lái)越好

今天想跟大家分享的是:
關(guān)于selenium的自動(dòng)化測(cè)試一些基礎(chǔ)的東西

安裝環(huán)境

1.Python環(huán)境
安裝完成后通過Windows命令提示符CMD輸入“python”,查看是否安裝成功

2.安裝setuptools與pip
setuptools是PEAK(Python enterprise Application Kit)的一個(gè)副項(xiàng)目,是python的distutilsde的增強(qiáng)工具,可以更方便創(chuàng)建和發(fā)布python包,特別是對(duì)其他包有依賴的情況;
pip是一個(gè)安裝和管理python包的工具,通過pip來(lái)安裝python包將變得很簡(jiǎn)單,省去了繁瑣的過程,pip的安裝依賴于setuptools,安裝pip之前需要先安裝setuptools;

3.下載selenium包
pip install selenium

4.下載瀏覽器驅(qū)動(dòng)
火狐和谷歌各有各的驅(qū)動(dòng)
下載鏈接:https://www.seleniumhq.org/do...

簡(jiǎn)單示例

示例名稱: test_python_org_search.py

import unittest
#引入 unittest 模塊是基于JAVA JUnit的Python內(nèi)置的模塊。 該模塊提供了一個(gè)框架去組織測(cè)試用例
from selenium import webdriver
#selenium.webdriver 模塊提供了所有WebDriver的實(shí)現(xiàn)
from selenium.webdriver.common.keys import Keys
# Keys 類提供所有的鍵盤按鍵操作
class PythonOrgSearch(unittest.TestCase):
#測(cè)試類繼承自 unittest.TestCase. 繼承 TestCase 類是告訴 unittest 模塊該類是一個(gè)測(cè)試用例
    def setUp(self):
        self.driver = webdriver.Firefox()
        #SetUp 方法是初始化的一部分,創(chuàng)建了一個(gè)Firefox WebDriver的一個(gè)實(shí)例
    def test_search_in_python_org(self):
        driver = self.driver
        driver.get("http://www.python.org")
        #driver.get 方法將會(huì)根據(jù)方法中給出的URL地址打開該網(wǎng)站
        self.assertIn("Python", driver.title)
        #使用assert斷言的方法判斷在頁(yè)面標(biāo)題中是否包含 “Python”
        elem = driver.find_element_by_name("q")
        #找到name為q的DOM節(jié)點(diǎn)
        elem.send_keys("pycon")
        #在name為q的DOM節(jié)點(diǎn)中,輸入pycon
        elem.send_keys(Keys.RETURN)
        #按enter鍵
        assert "No results found." not in driver.page_source


    def tearDown(self):
        self.driver.close()
    #tearDown 方法會(huì)在每一個(gè)測(cè)試方法執(zhí)行之后被執(zhí)行。 該方法可以用來(lái)做一些清掃工作,比如關(guān)閉瀏覽器。 當(dāng)然你也可以調(diào)用 quit 方法代替`close`方法
    #區(qū)別:quit 將關(guān)閉整個(gè)瀏覽器,而`close`只會(huì)關(guān)閉一個(gè)標(biāo)簽頁(yè)

if __name__ == "__main__":
    unittest.main()
    #入口函數(shù)

可直接在shell中運(yùn)行:python test_python_org_search.py

常用方法講解

1.打開一個(gè)頁(yè)面
driver.get("http://www.baidu.com")
WebDriver 將等待,直到頁(yè)面完全加載完畢(其實(shí)是等到 onload 方法執(zhí)行完畢), 然后返回繼續(xù)執(zhí)行你的腳本。 值得注意的是,如果你的頁(yè)面使用了大量的Ajax加載, WebDriver可能不知道什么時(shí)候頁(yè)面已經(jīng)完全加載。

2.與頁(yè)面交互
WebDriver 提供了大量的方法幫助你去查找元素,例如

可通過以下方法查找:

element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("http://input[@id="passwd-id"]")

你還可以通過鏈接的文本查找他,需要注意的是,這個(gè)文本必須完全匹配。 當(dāng)你使用XPATH時(shí),你必須注意,如果匹配超過一個(gè)元素,只返回第一個(gè)元素。 如果上面也沒找到,將會(huì)拋出 NoSuchElementException異常。

執(zhí)行一些操作,例如
在文本框中輸入一些內(nèi)容:element.send_keys("some text")
清除內(nèi)容:element.clear()

選擇下拉框:WebDriver的支持類有一個(gè)叫做 Select的類
from selenium.webdriver.support.ui import Select
select.select_by_index(index)根據(jù)option的順序
select.select_by_visible_text("text")根據(jù)文本
select.select_by_value(value)根據(jù)它的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.彈出對(duì)話框處理方式
alert = driver.switch_to_alert()
switch_to_alert()   #定位彈出對(duì)話
text()    #獲取對(duì)話框文本值
accept() #相當(dāng)于點(diǎn)擊"確認(rèn)"
dismiss() #相當(dāng)于點(diǎn)擊"取消"
send_keys() # 輸入值,這個(gè)alert和confirm沒有輸入對(duì)話框,所以這里就不能用了,所以這里只能使用在prompt這里。

5.操作cookie
打開一個(gè)頁(yè)面 driver.get(“http://www.example.com”)
現(xiàn)在設(shè)置Cookies,這個(gè)cookie在域名根目錄下(”/”)生效 cookie = {‘name’ : ‘foo’, ‘value’ : ‘bar’} driver.add_cookie(cookie)
現(xiàn)在獲取所有當(dāng)前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

以上是selenium相關(guān)的基礎(chǔ)內(nèi)容,下一期更新使用頁(yè)面對(duì)象模式的示例,
一起越來(lái)越好.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42906.html

相關(guān)文章

  • 2018 最好的動(dòng)化測(cè)試工具(Top 10 回顧)

    摘要:自動(dòng)化測(cè)試工具可能是網(wǎng)頁(yè)應(yīng)用中最流行的開源自動(dòng)化測(cè)試框架。證書商業(yè)是一個(gè)開源的自動(dòng)化測(cè)試框架,它實(shí)現(xiàn)了關(guān)鍵字測(cè)試驅(qū)動(dòng)來(lái)實(shí)現(xiàn)測(cè)試驅(qū)動(dòng)開發(fā)。 showImg(https://segmentfault.com/img/bVYz7D?w=1200&h=627); 簡(jiǎn)評(píng):軟件開發(fā)實(shí)踐一直以來(lái)都在變化,工具和技術(shù)也是如此。這些改變都是為了提高生產(chǎn)率,質(zhì)量,讓客戶滿意,縮短交付時(shí)間,以及交付成功的產(chǎn)...

    waltr 評(píng)論0 收藏0
  • 使用 Selenium 抓取網(wǎng)頁(yè)內(nèi)容和模擬登入

    摘要:傳統(tǒng)的無(wú)法執(zhí)行頁(yè)面中的瀏覽器腳本,并且在抓取一些對(duì)爬蟲有限制的網(wǎng)頁(yè)時(shí),往往要設(shè)定詳細(xì)的來(lái)突破限制,編寫起來(lái)較為復(fù)雜。直接使用瀏覽器運(yùn)行,像真正的用戶在操作。支持以下方式進(jìn)行選擇元素各種庫(kù)對(duì)情況的檢測(cè)方法 傳統(tǒng)的 cURL 無(wú)法執(zhí)行頁(yè)面中的瀏覽器腳本,并且在抓取一些對(duì)爬蟲有限制的網(wǎng)頁(yè)時(shí),往往要設(shè)定詳細(xì)的 http header 來(lái)突破限制,編寫起來(lái)較為復(fù)雜。 Selenium簡(jiǎn)介: ...

    mylxsw 評(píng)論0 收藏0
  • 使用瀏覽器的HEADLESS模式進(jìn)行動(dòng)化測(cè)試

    摘要:了解模式指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動(dòng)化測(cè)試和爬蟲領(lǐng)域有著廣泛的應(yīng)用。實(shí)踐使用瀏覽器的模式進(jìn)行自動(dòng)化測(cè)試,你需要先滿足以下前提運(yùn)行環(huán)境或者或者最新版已加入萬(wàn)事俱備,廢話不多說我們直接上演示代碼。 了解HEADLESS模式 HEADLESS BROWSER 指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動(dòng)化測(cè)試和爬蟲領(lǐng)域有著廣泛的應(yīng)用。 例如你想在網(wǎng)頁(yè)上運(yùn)行一些測(cè)試,從網(wǎng)頁(yè)...

    lanffy 評(píng)論0 收藏0
  • 使用Nightwatch進(jìn)行E2E測(cè)試中文教程

    摘要:本身項(xiàng)目也是使用來(lái)測(cè)試的。一個(gè)簡(jiǎn)易的模式的配置如下的分為四個(gè)部分在實(shí)例上以開頭的行為驅(qū)動(dòng)測(cè)試風(fēng)格的接口,及以上版本可用。例如以開頭的兩套相同的方法庫(kù),區(qū)別是如果斷言失敗則退出整個(gè)測(cè)試用例所有步,則打印后繼續(xù)進(jìn)行。 E2E測(cè)試 E2E(end to end)測(cè)試是指端到端測(cè)試又叫功能測(cè)試,站在用戶視角,使用各種功能、各種交互,是用戶的真實(shí)使用場(chǎng)景的仿真。在產(chǎn)品高速迭代的現(xiàn)在,有個(gè)自動(dòng)化測(cè)...

    newsning 評(píng)論0 收藏0
  • 【Python】逆向JavaScript,深度解析Q群成員數(shù)據(jù)的采集與郵件的來(lái)源,閱讀完后你就明白了

    摘要:在這里真心感謝一直在支持我的那幾個(gè)粉絲,謝謝你們的持續(xù)關(guān)注點(diǎn)贊。果然,第三個(gè)包也是按的步差來(lái)的,而為零不變,也不變。函數(shù)里面的話就是個(gè)循環(huán)咯,當(dāng)條件不滿足時(shí)就一直加,知道條件滿足為止。我每天都會(huì)抽時(shí)間給我的粉絲解答,給與一些學(xué)習(xí)資源。 目錄 前言 準(zhǔn)備工作 分析(x0) 分析(x1) 分析(...

    dkzwm 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<