qileilove

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

          Selenium對瀏覽器的各種操作

           第一步就是安裝Selenium這個模塊,當然,前提是你的python已經安裝好了
            直接在dos窗口輸入
            pip install selenium完成一鍵安裝
            然后就可以新建一個py文件,在里面輸入
          from selenium import webdriver
          from selenium.common.exceptions import TimeoutException
          from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
          from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
          # Create a new instance of the Firefox driver
          driver = webdriver.Firefox()
          # go to the google home page
          driver.get("http://www.google.com")
          # find the element that's name attribute is q (the google search box)
          inputElement = driver.find_element_by_name("q")
          # type in the search
          inputElement.send_keys("cheese!")
          # submit the form (although google automatically searches now without submitting)
          inputElement.submit()
          # the page is ajaxy so the title is originally this:
          print driver.title
          try:
          # we have to wait for the page to refresh, the last thing that seems to be updated is the title
          WebDriverWait(driver, 10).until(EC.title_contains("cheese!"))
          # You should see "cheese! - Google Search"
          print driver.title
          finally:
          driver.quit()
            這樣就打開google進行查找cheese!后打印標題并關閉瀏覽器
            下面介紹各種獲取瀏覽器內的各種元素的方法
          By ID
          <divid="coolestWidgetEvah">...</div>
          element=driver.find_element_by_id("coolestWidgetEvah")
          By Class Name
          <divclass="cheese"><span>Cheddar</span></div><divclass="cheese"><span>Gouda</span></div>
          cheeses=driver.find_elements_by_class_name("cheese")
          By Tag Name
          <iframesrc="..."></iframe>
          frame=driver.find_element_by_tag_name("iframe")
          By Name
          <inputname="cheese"type="text"/>
          cheese=driver.find_element_by_name("cheese")
          By Link Text
          <a >cheese</a>>
          cheese=driver.find_element_by_link_text("cheese")
          By Partial Link Text
          <a >search for cheese</a>
          cheese=driver.find_element_by_partial_link_text("cheese")
          By CSS
          <divid="food"><spanclass="dairy">milk</span><spanclass="dairy aged">cheese</span></div>
          cheese=driver.find_element_by_css_selector("#food span.dairy.aged")
          By XPATH
          <inputtype="text"name="example"/><INPUTtype="text"name="other"/>
          inputs=driver.find_elements_by_xpath("http://input")
            (相關的XPATH教程具體可以參考W3C的教程進行學習)
            Using JavaScript
            這么這是兩個例子,例子一需要提前加載jqury的支持
            element=driver.execute_script("return $('.cheese')[0]")
            labels=driver.find_elements_by_tag_name("label")inputs=driver.execute_script("var labels = arguments[0], inputs = []; for (var i=0; i < labels.length; i++){"+"inputs.push(document.getElementById(labels[i].getAttribute('for'))); } return inputs;",labels)
            User Input - Filling In Forms
            select=driver.find_element_by_tag_name("select")allOptions=select.find_elements_by_tag_name("option")foroptioninallOptions:print"Value is: "+option.get_attribute("value")option.click()
            有些選擇提取的元素是需要進行篩選的如
            # available since 2.12fromselenium.webdriver.support.uiimportSelectselect=Select(driver.find_element_by_tag_name("select"))select.deselect_all()select.select_by_visible_text("Edam")
            那么這些form進行如何提交呢?
            driver.find_element_by_id("submit").click()
            element.submit()
            Moving Between Windows and Frames
            <a href="somewhere.html"target="windowName">Click here to open a new window</a>
            driver.switch_to_window("windowName")
            driver.switch_to_frame("frameName")
            driver.switch_to_frame("frameName.0.child")
            切換一些彈出來的比如登錄框等
            Popup Dialogs
            這類的有alerts, confirms, and prompts等
            alert=driver.switch_to_alert()
            返回的是一個彈窗的窗體對象
            Cookies
            # Go to the correct domaindriver.get("http://www.example.com")# Now set the cookie. Here's one for the entire domain# the cookie name here is 'key' and its value is 'value'driver.add_cookie({'name':'key','value':'value','path':'/'})# additional keys that can be passed in are:# 'domain' -> String,# 'secure' -> Boolean,# 'expiry' -> Milliseconds since the Epoch it should expire.# And now output all the available cookies for the current URLforcookieindriver.get_cookies():print"%s -> %s"%(cookie['name'],cookie['value'])# You can delete cookies in 2 ways# By namedriver.delete_cookie("CookieName")# Or all of themdriver.delete_all_cookies()
            Changing the User Agent
            profile=webdriver.FirefoxProfile()profile.set_preference("general.useragent.override","some UA string")driver=webdriver.Firefox(profile)
            Drag And Drop
          fromselenium.webdriver.common.action_chainsimportActionChainselement=driver.find_element_by_name("source")target=driver.find_element_by_name("target")ActionChains(driver).drag_and_drop(element,target).perform()
            具體的詳細用法可以參考官方文檔:http://docs.seleniumhq.org/docs/03_webdriver.jsp

          posted on 2014-07-31 09:55 順其自然EVO 閱讀(1227) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄selenium and watir webdrivers 自動化測試學習

          <2014年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 平南县| 大化| 三亚市| 舒城县| 搜索| 梁山县| 东辽县| 西昌市| 金寨县| 崇阳县| 游戏| 石狮市| 南雄市| 新和县| 松江区| 栾川县| 云安县| 甘洛县| 高要市| 万山特区| 乌恰县| 汕尾市| 临沂市| 巴林右旗| 翁牛特旗| 华阴市| 舞钢市| 武城县| 青龙| 井研县| 佳木斯市| 山西省| 临泽县| 信丰县| 车险| 长岭县| 石狮市| 新田县| 银川市| 江阴市| 柘荣县|