<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    python-webdriver 開始第一個腳本

    2.1 為什么選 python
    之前的菜鳥系列是基于 java 的,一年沒學其實也忘的差不多了,目前所測的產品
    部分也是 python 寫的,而且團隊也在推廣 python ,其實就測試人員來說,python 也
    相當受歡迎。易學,易用。翻翻各測試招聘,python 出現的概率也頗高。(個人原因)
    最重要的還是 python 簡單易學,應用也相對廣泛;是測試人員學習編程的不二之選。
    下面看看 python 穿上 selenium webdriver 是多么的性感:
    2.2 第一個腳本
    # coding = utf-8
    from selenium import webdriver
    browser = webdriver.Firefox()
    browser.get("http://www.baidu.com")
    browser.find_element_by_id("kw").send_keys("selenium")
    browser.find_element_by_id("su").click()
    博客園—蟲師
    http://fnng.cnblogs.com
    10
    browser.quit()
    2.3 腳本解析
    # coding = utf-8
    可加可不加,開發人員喜歡加一下,防止亂碼嘛。
    from selenium import webdriver
    要想使用 selenium 的 webdriver 里的函數,首先把包導進來嘛
    browser = webdriver.Firefox()
    我們需要操控哪個瀏覽器呢?Firefox ,當然也可以換成 Ie 或 Chrome 。browser 可以
    隨便取,但后面要用它操縱各種函數執行。
    browser.find_element_by_id("kw").send_keys("selenium")
    一個控件有若干屬性 id 、name、(也可以用其它方式定位),百度輸入框的 id 叫 kw ,
    我要在輸入框里輸入 selenium 。多自然語言呀!
    browser.find_element_by_id("su").click()
    搜索的按鈕的 id 叫 su ,我需要點一下按鈕( click() )。
    browser.quit()
    退出并關閉窗口的每一個相關的驅動程序,有潔癖用這個。
    browser.close()
    關閉當前窗口 ,用哪個看你的需求了。
    博客園—蟲師
    http://fnng.cnblogs.com
    11
    三、元素的定位
    對象的定位應該是自動化測試的核心,要想操作一個對象,首先應該識別這個對象。
    一個對象就是一個人一樣,他會有各種的特征(屬性),如比我們可以通過一個人的身
    份證號,姓名,或者他住在哪個街道、樓層、門牌找到這個人。
    那么一個對象也有類似的屬性,我們可以通過這個屬性找到這對象。
    webdriver 提供了一系列的對象定位方法,常用的有以下幾種
    ?
    · id
    ?
    · name
    ?
    · class name
    ?
    · link text
    ?
    · partial link text
    ?
    · tag name
    ?
    · xpath
    ?
    · css selector
    我們可以看到,一個百度的輸入框,可以用這么用種方式去定位。
    <input
    id="kw"
    class="s_ipt"
    type="text"
    maxlength="100"
    name="wd"
    autocomplete="off">
    #coding=utf-8
    from selenium import webdriver
    browser = webdriver.Firefox()
    browser.get("http://www.baidu.com")
    #########百度輸入框的定位方式##########
    #通過 id 方式定位
    browser.find_element_by_id("kw").send_keys("selenium")
    #通過 name 方式定位
    browser.find_element_by_name("wd").send_keys("selenium")
    #通過 tag name 方式定位
    browser.find_element_by_tag_name("input").send_keys("selenium")
    #通過 class name 方式定位
    browser.find_element_by_class_name("s_ipt").send_keys("selenium")
    博客園—蟲師
    http://fnng.cnblogs.com
    12
    #通過 CSS 方式定位
    browser.find_element_by_css_selector("#kw").send_keys("selenium")
    #通過 xphan 方式定位
    browser.find_element_by_xpath("http://input[@id='kw']").send_keys("selenium")
    ############################################
    browser.find_element_by_id("su").click()
    time.sleep(3)
    browser.quit()
    3.1
    id 和 name 定位
    id 和 name 是我們最最常用的定位方式,因為大多數控件都有這兩個屬性,而且
    在對控件的 id 和 name 命名時一般使其有意義也會取不同的名字。通過這兩個屬性使我
    們找一個頁面上的屬性變得相當容易
    我們通過前端工具,找到了百度輸入框的屬性信息,如下:
    <input
    id="kw"
    class="s_ipt"
    type="text"
    maxlength="100"
    name="wd"
    autocomplete="off">
    id=”kw”
    通過 find_element_by_id("kw") 函數就是捕獲到百度輸入框
    name=”wd”
    通過 find_element_by_name("wd")函數同樣也可以捕獲百度輸入框
    3.2
    tag name 和 class name 定位
    從上面的百度輸入框的屬性信息中,我們看到,不單單只有 id 和 name 兩個屬性,
    比如 class 和 tag name(標簽名)
    <input
    id="kw"
    class="s_ipt"
    type="text"
    maxlength="100"
    name="wd"
    autocomplete="off">
    <input>
    博客園—蟲師
    http://fnng.cnblogs.com
    13
    input 就是一個標簽的名字

    3.4
    XPath 定位
    什么是 XPath:http://www.w3.org/TR/xpath/
    XPath 基礎教程:http://www.w3schools.com/xpath/default.asp
    selenium 中被誤解的 XPath : http://magustest.com/blog/category/webdriver/
    XPath 是一種在 XML 文檔中定位元素的語言。因為 HTML 可以看做 XML 的一種實現,
    所以 selenium 用戶可是使用這種強大語言在 web 應用中定位元素。
    XPath 擴展了上面 id 和 name 定位方式,提供了很多種可能性,比如定位頁面上的
    第三個多選框。
    xpath:attributer (屬性)
    driver.find_element_by_xpath("http://input[@id='kw']").send_keys("selenium")
    #input 標簽下 id =kw 的元素
    xpath:idRelative (id 相關性)
    driver.find_element_by_xpath("http://div[@id='fm']/form/span/input").send_keys("s
    elenium")
    #在/form/span/input 層級標簽下有個 div 標簽的 id=fm 的元素
    driver.find_element_by_xpath("http://tr[@id='check']/td[2]").click()
    # id 為'check' 的 tr ,定位它里面的第2個 td
    xpath:position (位置)
    driver.find_element_by_xpath("http://input").send_keys("selenium")
    driver.find_element_by_xpath("http://tr[7]/td[2]").click()
    #第7個 tr 里面的第2個 td
    xpath: href (水平參考)
    driver.find_element_by_xpath("http://a[contains(text(),'網頁')]").click()
    #在 a 標簽下有個文本(text)包含(contains)'網頁' 的元素
    xpath:link
    driver.find_element_by_xpath("http://a[@).click()
    #有個叫 a 的標簽,他有個鏈接 href='http://www.baidu.com/ 的元素
    博客園—蟲師
    http://fnng.cnblogs.com
    15
    3.5
    link 定位
    有時候不是一個輸入框也不是一個按鈕,而是一個文字鏈接,我們可以通過 link
    #coding=utf-8
    from selenium import webdriver
    browser = webdriver.Firefox()
    browser.get("http://www.baidu.com")
    browser.find_element_by_link_text("貼 吧").click()
    browser.quit()
    一般一個頁面上不會出現相同的文件鏈接,通過文字鏈接來定位也是一種簡單有效
    的定位方式。
    3.6
    Partial link text 定位
    通過部分鏈接定位,這個有時候也會用到,我還沒有想到很好的用處。拿上面的例
    子,我可以只用鏈接的一部分文字進行匹配:
    browser.find_element_by_partial_link_text("貼").click()
    #通過 find_element_by_partial_link_text() 函數,我只用了“貼”字,腳本一樣找到了"貼 吧
    " 的鏈接

    posted on 2014-04-10 15:16 順其自然EVO 閱讀(505) 評論(0)  編輯  收藏 所屬分類: 自動化測試python

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品永久免费| 九九精品免费视频| 免费国产一级特黄久久| 亚洲日产乱码一二三区别| 最近免费中文字幕大全视频| 亚洲专区一路线二| 国产亚洲精品岁国产微拍精品| 日本永久免费a∨在线视频| 国产一区二区免费在线| 亚洲av无码乱码国产精品| 99久久国产精品免费一区二区| 成人免费视频观看无遮挡| 亚洲日韩国产AV无码无码精品| 思思99re66在线精品免费观看| 亚洲成a人片在线观看日本| 波多野结衣免费一区视频| 精品无码一区二区三区亚洲桃色| 亚洲视频在线免费看| 亚洲人成电影网站色www| 四虎免费久久影院| a级毛片在线免费观看| 亚洲人成电影在在线观看网色| 欧洲一级毛片免费| 日韩欧美亚洲国产精品字幕久久久| 免费大学生国产在线观看p| 一个人免费观看www视频| 亚洲国产精品无码一线岛国| 69影院毛片免费观看视频在线| 久久久久se色偷偷亚洲精品av| 永久免费无码网站在线观看| 五月天国产成人AV免费观看| 亚洲国产精品自在线一区二区| 国产桃色在线成免费视频 | 四虎永久免费影院在线| 和老外3p爽粗大免费视频| 亚洲综合色丁香麻豆| 免费日韩在线视频| 午夜网站在线观看免费完整高清观看 | 亚洲精品无码高潮喷水A片软| 亚洲v国产v天堂a无码久久| 91麻豆国产免费观看|