qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

          輕松自動(dòng)化---selenium-webdriver(python) (八)

          本節(jié)重點(diǎn):

            調(diào)用js方法

            execute_script(script, *args)

            在當(dāng)前窗口/框架 同步執(zhí)行javaScript

            腳本:JavaScript的執(zhí)行。

            *參數(shù):適用任何JavaScript腳本。

            使用:

            driver.execute_script(‘document.title’)

            使快播登陸用戶名輸入框標(biāo)紅顯示:

          #coding=utf-8
          from selenium import webdriver
          import time

          driver = webdriver.Firefox()
          driver.get(http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fvod.kuaibo.com%2F%3Ft%3Dhome)

          #給用戶名的輸入框標(biāo)紅
          js="var q=document.getElementById(\"user_name\");q.style.border=\"1px solid red\";"
          #調(diào)用js
          driver.execute_script(js)
          time.sleep(3)

          driver.find_element_by_id("user_name").send_keys("username")
          driver.find_element_by_id("user_pwd").send_keys("password")
          driver.find_element_by_id("dl_an_submit").click()
          time.sleep(3)

          driver.quit()

            js解釋:

            q=document.getElementById(\"user_name\")

            元素q的id 為user_name

            q.style.border=\"1px solid red\

            元素q的樣式,邊框?yàn)?個(gè)像素紅色

           隱藏元素

            js.html

          <html>
              <head>
                <meta http-equiv="content-type" content="text/html;charset=utf-8" />
                <title>js</title>     
                <script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
                <link href=http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css rel="stylesheet" />        
                <script type="text/javascript">
                  $(document).ready(function(){
                    $('#tooltip').tooltip({"placement": "right"});
                  });
                </script>
              </head>

              <body>
                <h3>js</h3>
                <div class="row-fluid">
                  <div class="span6 well">        
                    <a id="tooltip" href="#" data-toggle="tooltip" title=" selenium-webdriver(python)">hover to see tooltip</a>
                    <a class="btn">Button</a>
                  </div>      
                </div>        
              </body>
              <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
            </html>

            (保持html文件與執(zhí)行腳本在同一目錄下)

            執(zhí)行js一般有兩種場(chǎng)景:

            一種是在頁面上直接執(zhí)行JS

            另一種是在某個(gè)已經(jīng)定位的元素上執(zhí)行JS

          #coding=utf-8
          from selenium import webdriver 
          import time,os

          driver = webdriver.Firefox()
          file_path =  'file:///' + os.path.abspath('js.html')
          driver.get(file_path)

          #######通過JS 隱藏選中的元素#########
          #第一種方法:
          driver.execute_script('$("#tooltip").fadeOut();')
          time.sleep(5)

          #第二種方法:
          button = driver.find_element_by_class_name('btn')
          driver.execute_script('$(arguments[0]).fadeOut()',button)
          time.sleep(5)

          driver.quit()

            js解釋:

            arguments對(duì)象,它是調(diào)用對(duì)象的一個(gè)特殊屬性,用來引用Arguments對(duì)象。Arugments對(duì)象就像數(shù)組。

            fadeOut() 方法使用淡出效果來隱藏被選元素,假如該元素是隱藏的。

            PS:可以看到j(luò)s 可以做selenium 做不到的事情,但是在什么樣的自動(dòng)化的時(shí)候才能(或必須)要js幫忙,我還沒遇到過。不過js可以selenium完成更強(qiáng)大的功能,這是不容置疑的。

            另外,之前沒有學(xué)過JS ,所以js代碼很陌生。如果有時(shí)間的話也建議各位同學(xué)補(bǔ)充這方面的知識(shí)。UI自動(dòng)化離不開前端技術(shù)。

          相關(guān)文章:

          輕松自動(dòng)化---selenium-webdriver(python) (七)

          輕松自動(dòng)化---selenium-webdriver(python) (九)



          posted on 2013-08-19 10:28 順其自然EVO 閱讀(401) 評(píng)論(0)  編輯  收藏 所屬分類: selenium and watir webdrivers 自動(dòng)化測(cè)試學(xué)習(xí)

          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 正安县| 敦煌市| 丰原市| 腾冲县| 隆尧县| 阿克苏市| 邢台县| 玉山县| 宜黄县| 澄城县| 定州市| 宁都县| 漯河市| 长泰县| 来凤县| 安龙县| 洛隆县| 兰州市| 会东县| 兖州市| 阿荣旗| 苗栗县| 林州市| 额济纳旗| 和静县| 广河县| 齐河县| 龙里县| 池州市| 习水县| 庆元县| 镇雄县| 唐山市| 余江县| 黔江区| 枣强县| 长海县| 通许县| 陆川县| 安顺市| 井研县|