|
3 | 3 | """ |
4 | 4 |
|
5 | 5 | import sys, os, time, types, re, traceback, threading, io, datetime, csv, json, urllib, requests, zipfile, tarfile |
| 6 | +from win32api import GetFileVersionInfo, LOWORD, HIWORD |
6 | 7 |
|
7 | 8 | __dir__ = os.path.dirname(os.path.realpath(__file__)) |
8 | 9 |
|
@@ -96,16 +97,14 @@ def skip_SeleniumLibraries(self): |
96 | 97 | Log("Updated Selenium .Net to version " + version) |
97 | 98 |
|
98 | 99 | def update_IE32(self): |
99 | | - page = r"http://selenium-release.storage.googleapis.com/" |
100 | | - value, version = WebSource(page).findlastversion( \ |
101 | | - r'<Key>([\d\.]+/IEDriverServer_Win32_([\d\.]+).zip)', group_value=1, group_version=2) |
102 | | - url = page + value |
| 100 | + url = r"https://github.com/SeleniumHQ/selenium/raw/master/cpp/prebuilt/Win32/Release/IEDriverServer.exe" |
| 101 | + version = WebSource(url).getEtag() |
103 | 102 | cfg = self.cfgs.get('IEDriver') |
104 | 103 | if cfg.get('version') != version or not file_exists('iedriver.exe'): |
105 | | - with WebZip(url) as zip: |
106 | | - zip.extract(r'IEDriverServer.exe', 'iedriver.exe') |
| 104 | + WebFile(url).save('iedriver.exe') |
107 | 105 | cfg.update({'version': version, 'url': url}) |
108 | | - Log("Updated IE32 driver to version " + version) |
| 106 | + file_version = get_version_number(r'iedriver.exe') |
| 107 | + Log("Updated IE32 driver to version " + file_version) |
109 | 108 |
|
110 | 109 | def update_IE64(self): |
111 | 110 | page = r"http://selenium-release.storage.googleapis.com/" |
@@ -243,6 +242,14 @@ def format_ex(e_type, e_value, e_trace): |
243 | 242 | lines.append(' ' + line.strip() + '\n') |
244 | 243 | return '\n#%s:\n%s\n\n%s' % (e_type.__name__, str(e_value), ''.join(lines)) |
245 | 244 |
|
| 245 | +def get_version_number(filename): |
| 246 | + try: |
| 247 | + info = GetFileVersionInfo(os.path.realpath(filename), "\\") |
| 248 | + ms = info['FileVersionMS'] |
| 249 | + ls = info['FileVersionLS'] |
| 250 | + return '.'.join([str(v) for v in (HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls))]) |
| 251 | + except: |
| 252 | + return '0.0.0.0' |
246 | 253 |
|
247 | 254 | class ConfigFile(dict): |
248 | 255 |
|
|
0 commit comments