Установил Python 2.7 и Selenium WebDriver 2.4 на Windows7
Написал тест. Отладил. Запустил.
Открывается IE8, выполняется тест. Все отлично.
Сделал все те же действия на виртуальной машине. Тот же питон, селениум, тест перенес готовый.
Но уже на запуске драйвера
driver = webdriver.Ie()
эксплорер не запустился. :(
В результате разбирательств с кодом выяснил, что на виртуалке и на реальной винде код выполняется по-разному.
![:shok:](http://software-testing.ru/forum/public/style_emoticons/default/shok.gif)
объяснение этому я найти не могу
![:cray:](http://software-testing.ru/forum/public/style_emoticons/default/cray.gif)
но к моменту передачи запроса в коде httplib.py
def _send_request(self, method, url, body, headers): # Honor explicitly requested Host: and Accept-Encoding: headers. header_names = dict.fromkeys([k.lower() for k in headers]) skips = {} if 'host' in header_names: skips['skip_host'] = 1 if 'accept-encoding' in header_names: skips['skip_accept_encoding'] = 1 self.putrequest(method, url, **skips) if body and ('content-length' not in header_names): self._set_content_length(body) for hdr, value in headers.iteritems(): self.putheader(hdr, value) ------------------------ вот здесь добавляются параметры в переменную self._buffer self.endheaders(body) ------------------------- вот здесь в дальнейшем используется self._buffer
self._buffer после наполнения выглядит так на виртуалке
str: POST http://127.0.0.1:49521/session HTTP/1.1 Accept-Encoding: identity Content-Length: 145 Host: 127.0.0.1:49521 Accept: application/json User-Agent: Python-urllib/2.7 Connection: close Co...
И вот так он выглядит на моей машине
POST /session HTTP/1.1 Accept-Encoding: identity Content-Length: 145 Host: 127.0.0.1:3872 Accept: application/json User-Agent: Python-urllib/2.7 Connection: close Content-Type: application/x-www-form-urlencoded {"sessionId": null, "desiredCapabilities": {"platform": "WINDOWS", "browserName": "internet explorer", "version": "", "javascriptEnabled": true}}
Мне кажется что суть проблемы в этом…
Но вот почему он по-разному заполняет буфер я не понимаю. Потому что до последнего момента используется строка Content-Type: application/x-www-form-urlencoded, но никак не Co…
Может кто-то сталкивался с такой проблемой или с похожей?