您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
輕松自動化---selenium-webdriver(python) (十四)
作者:網(wǎng)絡轉載 發(fā)布時間:[ 2013/9/16 10:02:59 ] 推薦標簽:

  之前看乙醇視頻中提到,selenium 的ruby 實現(xiàn)有一個小后門,在代碼中加上$DEBUG=1 ,再運行腳本的過程中,可以看到客戶端請求的信息與服務器端返回的數(shù)據(jù);覺得這個功能很強大,可以幫助理解webdriver的運行原理。

  后來查了半天,python并沒有提供這樣一個方便的后門,不過我們可以通過代理的方式獲得這些交互信息;

  一、需要安裝java 虛擬機與selenium-server-standalone ,參考 《selenium + python自動化測試環(huán)境搭建》第7、8操作:

  二、通過下面命令啟動服務:

  C:selenium>java -jar selenium-server-standalone-2.33.0.jar

  在命令結尾加 >d:log.txt 可以將命令信息存入文件,但信息很少。

  然后運行下面的自動化腳本:

  #coding = utf-8

  import time
  from selenium import webdriver
  from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

  driver = webdriver.Remote(desired_capabilities=DesiredCapabilities.CHROME)
  driver.get("http://www.youdao.com")
  driver.find_element_by_name("q").send_keys("hello")
  driver.find_element_by_name("q").send_keys("key.ENTER")

  driver.close()

  webdriver原理:

  1. WebDriver 啟動目標瀏覽器,并綁定到指定端口。該啟動的瀏覽器實例,做為web driver的remote server。

  2. Client 端通過CommandExcuter 發(fā)送HTTPRequest 給remote server 的偵聽端口(通信協(xié)議: the webriver wire protocol)

  3. Remote server 需要依賴原生的瀏覽器組件(如:IEDriver.dll,chromedriver.exe),來轉化轉化瀏覽器的native調用。

  查看命令提示符下的運行日志:

  咋一看很亂,慢慢分析一下發(fā)現(xiàn)很有意思!結合上面的腳本分析

  啟動代理進入監(jiān)聽狀態(tài)

  C:selenium>java -jar selenium-server-standalone-2.33.0.jar
  八月 22, 2013 10:19:48 上午 org.openqa.grid.selenium.GridLauncher main
  INFO: Launching a standalone server
  10:19:48.734 INFO - Java: Oracle Corporation 23.21-b01
  10:19:48.734 INFO - OS: Windows XP 5.1 x86
  10:19:48.734 INFO - v2.33.0, with Core v2.33.0. Built from revision 4e90c97
  10:19:48.843 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
  10:19:48.843 INFO - Version Jetty/5.1.x
  10:19:48.843 INFO - Started HttpContext[/selenium-server/driver,/selenium-server
  /driver]
  10:19:48.843 INFO - Started HttpContext[/selenium-server,/selenium-server]
  10:19:48.843 INFO - Started HttpContext[/,/]
  10:19:48.890 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@176343e
  10:19:48.890 INFO - Started HttpContext[/wd,/wd]
  10:19:48.906 INFO - Started SocketListener on 0.0.0.0:4444
  10:19:48.906 INFO - Started org.openqa.jetty.jetty.Server@388c74

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd