selenium打開瀏覽器底層實現原理中的異常3.1(org.openqa.selenium.SessionNotCreatedException: Unable to create session)


代碼:

#coding=utf-8
import requests
import json
url='http://127.0.0.1:4444/wd/hub/session'
data = json.dumps({
    'capabilities':{
        'browserName':'MicrosoftEdge'
    }
})
print(requests.post(url,data).json())

結果:

PS E:\30.Study\30.自動化測試\99.零基礎入門 Python Web 自動化測試\10.seleniumCodePractice> & "C:/Program Files/Python38/python.exe" "e:/30.Study/30.自動化測試/99.零基礎入門 Python Web 自動化測試/10.seleniumCodePractice/202006/requests_open_browser.py"
{'value': {'stacktrace': 'org.openqa.selenium.SessionNotCreatedException: Unable to create session from {\n  "desiredCapabilities": {\n  },\n  "capabilities": {\n    "firstMatch": [\n    ]\n  }\n}\nBuild info: version: \'3.141.59\', revision: \'e82be7d358\', time: \'2018-11-14T08:25:53\'\nSystem info: host: \'DESKTOP-14VQUSG\', ip: \'192.168.137.1\', os.name: \'Windows 10\', os.arch: \'x86\', os.version: \'10.0\', java.version: \'1.8.0_251\'\nDriver info: driver.version: unknown\r\n\tat org.openqa.selenium.remote.server.NewSessionPipeline.lambda$null$4(NewSessionPipeline.java:76)\r\n\tat java.util.Optional.orElseThrow(Unknown Source)\r\n\tat org.openqa.selenium.remote.server.NewSessionPipeline.lambda$createNewSession$5(NewSessionPipeline.java:75)\r\n\tat java.util.Optional.orElseGet(Unknown Source)\r\n\tat org.openqa.selenium.remote.server.NewSessionPipeline.createNewSession(NewSessionPipeline.java:73)\r\n\tat org.openqa.selenium.remote.server.commandhandler.BeginSession.execute(BeginSession.java:65)\r\n\tat org.openqa.selenium.remote.server.WebDriverServlet.lambda$handle$0(WebDriverServlet.java:235)\r\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)\r\n\tat java.util.concurrent.FutureTask.run(Unknown Source)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)\r\n\tat java.lang.Thread.run(Unknown Source)\r\n', 'stackTrace': [{'fileName': 'NewSessionPipeline.java', 'methodName': 'lambda$null$4', 'className': 'org.openqa.selenium.remote.server.NewSessionPipeline', 'lineNumber': 76}, {'fileName': None, 'methodName': 'orElseThrow', 'className': 'java.util.Optional', 'lineNumber': -1}, {'fileName': 'NewSessionPipeline.java',
'methodName': 'lambda$createNewSession$5', 'className': 'org.openqa.selenium.remote.server.NewSessionPipeline', 'lineNumber': 75}, {'fileName': None, 'methodName': 'orElseGet',
'className': 'java.util.Optional', 'lineNumber': -1}, {'fileName': 'NewSessionPipeline.java', 'methodName': 'createNewSession', 'className': 'org.openqa.selenium.remote.server.NewSessionPipeline', 'lineNumber': 73}, {'fileName': 'BeginSession.java', 'methodName': 'execute', 'className': 'org.openqa.selenium.remote.server.commandhandler.BeginSession', 'lineNumber': 65}, {'fileName': 'WebDriverServlet.java', 'methodName': 'lambda$handle$0', 'className': 'org.openqa.selenium.remote.server.WebDriverServlet', 'lineNumber': 235}, {'fileName': None, 'methodName': 'call', 'className': 'java.util.concurrent.Executors$RunnableAdapter', 'lineNumber': -1}, {'fileName': None, 'methodName': 'run', 'className': 'java.util.concurrent.FutureTask', 'lineNumber': -1}, {'fileName': None, 'methodName': 'runWorker', 'className': 'java.util.concurrent.ThreadPoolExecutor', 'lineNumber': -1}, {'fileName': None, 'methodName': 'run', 'className': 'java.util.concurrent.ThreadPoolExecutor$Worker', 'lineNumber': -1}, {'fileName': None, 'methodName': 'run', 'className': 'java.lang.Thread', 'lineNumber': -1}], 'message': 'Unable to create session from {\n  "desiredCapabilities": {\n  },\n  "capabilities": {\n    "firstMatch": [\n    ]\n  }\n}\nBuild info: version: \'3.141.59\', revision: \'e82be7d358\', time: \'2018-11-14T08:25:53\'\nSystem info: host: \'DESKTOP-14VQUSG\', ip: \'192.168.137.1\', os.name: \'Windows 10\', os.arch: \'x86\', os.version: \'10.0\', java.version: \'1.8.0_251\'\nDriver info: driver.version: unknown', 'error': 'session not created'}, 'status': 33}
PS E:\30.Study\30.自動化測試\99.零基礎入門 Python Web 自動化測試\10.seleniumCodePractice>

原因分析:

結合【selenium打開瀏覽器底層實現原理中的異常3.0(org.openqa.selenium.SessionNotCreatedException: Unable to create session) 】的“原因分析”,是字典里的值有問題。在這里desiredCapabilities之所以是空的,是因為在代碼里調用的是“capabilities”,所以此時desiredCapabilities就成空的了。

對應方法:

'capabilities' ==> 'desiredCapabilities'

 

思考:

1.為什么調用'capabilities'的時候'desiredCapabilities'是空的?

2.為什么調用'desiredCapabilities'的時候'capabilities'卻是有值的?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM