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

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

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

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

  二、通過(guò)下面命令啟動(dòng)服務(wù):

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

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

  然后運(yùn)行下面的自動(dòng)化腳本:

  #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 啟動(dòng)目標(biāo)瀏覽器,并綁定到指定端口。該啟動(dòng)的瀏覽器實(shí)例,做為web driver的remote server。

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

  3. Remote server 需要依賴原生的瀏覽器組件(如:IEDriver.dll,chromedriver.exe),來(lái)轉(zhuǎn)化轉(zhuǎn)化瀏覽器的native調(diào)用。

  查看命令提示符下的運(yùn)行日志:

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

  啟動(dòng)代理進(jì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

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