獲取webrtc應用運行時webrtc-internals的信息:
# coding = utf-8
from selenium import webdriver
import selenium.webdriver.support.ui as ui
from selenium.webdriver.common.keys import Keys
import os
import sys
import re
import time
def utf8code(ss):?
? ? u8 = re.sub(r'[\000-\377]*', lambda m:''.join([chr(ord(i)) for i in m.group(0)]).decode('utf8'), ss)
? ? return u8
def monitor(url1,url2):
? ? chromedriver = "C:/Users/xxx/AppData/Local/Google/Chrome/Application/chromedriver.exe"
? ? os.environ["webdriver.chrome.driver"] = chromedriver
? ? driver = webdriver.Chrome(chromedriver)
? ? driver.maximize_window()
? ? #driver.implicitly_wait(15)
? ? # First Tab
? ? driver.get(url1)
? ? window_handle = driver.current_window_handle
? ? print window_handle
? ? print driver.title
? ? time.sleep(3)
? ? # Second Tab
? ? driver.execute_script('''window.open("http://nmeeting.*****.com/", "_blank");''')
? ? lastParameter = ['']*10
? ? nowParameter = ['']*10
? ? isFirst=True
? ? for i in range(1000000):
? ? ? ? time.sleep(5)
? ? ? ? for peer in range(1,10):
? ? ? ? ? ? xpath="http://*[@id=\"content-root\"]/div[1]/span["+str(peer)+"]"
? ? ? ? ? ? try:
? ? ? ? ? ? ? ? driver.find_element_by_xpath(xpath).is_displayed()
? ? ? ? ? ? except:
? ? ? ? ? ? ? ? x=0#
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? peerUrl = driver.find_element_by_xpath(xpath).text
? ? ? ? ? ? ? ? #print peerUrl
? ? ? ? ? ? ? ? if peerUrl == 'GetUserMedia Requests':
? ? ? ? ? ? ? ? ? ? continue
? ? ? ? ? ? ? ? driver.find_element_by_xpath(xpath).click()
? ? ? ? ? ? ? ? peerId = str(str(peerUrl).split("[")[1]).split("]")[0]
? ? ? ? ? ? ? ? parameter = ['']*9
? ? ? ? ? ? ? ? timestamp = str(peerId) + '-table-bweforvideo-timestamp'
? ? ? ? ? ? ? ? googAvailableSendBandwidth = str(peerId) + '-table-bweforvideo-googAvailableSendBandwidth'
? ? ? ? ? ? ? ? googAvailableReceiveBandwidth = str(peerId) + '-table-bweforvideo-googAvailableReceiveBandwidth'
? ? ? ? ? ? ? ? googTargetEncBitrate = str(peerId) + '-table-bweforvideo-googTargetEncBitrate'
? ? ? ? ? ? ? ? googActualEncBitrate = str(peerId) + '-table-bweforvideo-googActualEncBitrate'
? ? ? ? ? ? ? ? googRetransmitBitrate = str(peerId) + '-table-bweforvideo-googRetransmitBitrate'
? ? ? ? ? ? ? ? googTransmitBitrate = str(peerId) + '-table-bweforvideo-googTransmitBitrate'
? ? ? ? ? ? ? ? googBucketDelay = str(peerId) + '-table-bweforvideo-googBucketDelay'
? ? ? ? ? ? ? ? googReceivedPacketGroupPropagationDeltaSumDebug = str(peerId) + '-table-bweforvideo-googReceivedPacketGroupPropagationDeltaSumDebug'? ? ? ? ? ?
? ? ? ? ? ? ? ? parameter[0] = timestamp
? ? ? ? ? ? ? ? parameter[1] = googAvailableSendBandwidth
? ? ? ? ? ? ? ? parameter[2] = googAvailableReceiveBandwidth
? ? ? ? ? ? ? ? parameter[3] = googTargetEncBitrate
? ? ? ? ? ? ? ? parameter[4] = googActualEncBitrate
? ? ? ? ? ? ? ? parameter[5] = googRetransmitBitrate
? ? ? ? ? ? ? ? parameter[6] = googTransmitBitrate
? ? ? ? ? ? ? ? parameter[7] = googBucketDelay
? ? ? ? ? ? ? ? parameter[8] = googReceivedPacketGroupPropagationDeltaSumDebug
? ? ? ? ? ? ? ? print '***' + str(peerId) + '***'
? ? ? ? ? ? ? ? xpath_bweforvideo = "http://*[@id=\"" + parameter[0] + "\"]"
? ? ? ? ? ? ? ? print driver.find_element_by_xpath(xpath_bweforvideo).text #
? ? ? ? ? ? ? ? #
? ? ? ? ? ? ? ? for j in range(1,9):
? ? ? ? ? ? ? ? ? ? xpath_bweforvideo = "http://*[@id=\"" + parameter[j] + "\"]"
? ? ? ? ? ? ? ? ? ? try:
? ? ? ? ? ? ? ? ? ? ? ? driver.find_element_by_xpath(xpath_bweforvideo).is_displayed()
? ? ? ? ? ? ? ? ? ? except:
? ? ? ? ? ? ? ? ? ? ? ? x=0#
? ? ? ? ? ? ? ? ? ? else:? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? if nowParameter[peer] == '':
? ? ? ? ? ? ? ? ? ? ? ? ? ? nowParameter[peer] = driver.find_element_by_xpath(xpath_bweforvideo).text
? ? ? ? ? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? ? ? ? ? nowParameter[peer] = nowParameter[peer] + '\n' + driver.find_element_by_xpath(xpath_bweforvideo).text
? ? ? ? ? ? ? ? print nowParameter[peer]
? ? ? ? ? ? ? ? if isFirst == False:
? ? ? ? ? ? ? ? ? ? if lastParameter[peer] == nowParameter[peer] and lastParameter[peer] != '' and nowParameter[peer] != '':
? ? ? ? ? ? ? ? ? ? ? ? print str(peerId) + utf8code("error")
? ? ? ? ? ? ? ? isFirst = False
? ? ? ? ? ? ? ? lastParameter[peer] = nowParameter[peer]
? ? ? ? ? ? ? ? nowParameter[peer] = ''
? ? ? ? print "--------------------------------------------------------------------------"
if __name__ == '__main__':
? ? reload(sys)
? ? sys.setdefaultencoding("utf8")? ?
? ? url1 = "chrome://webrtc-internals/"
? ? url2 = "http://nmeeting.*****.com/"
? ? monitor(url1,url2)
? ? print 'ok'