老师,sessionId 为None,没有获取到

来源:5-11 开发一个定位方法

慕粉1212355798

2021-04-09

import requests
import json
class requests_webdriver:
def init(self):
self.driver = self.chrome_driver()
def chrome_driver(self):
url = 'http://127.0.0.1:4444/wd/hub/session/'
data = json.dumps({
‘desiredCapabilities’:{
‘browserName’:‘chrome’
}
})
res = requests.post(url,data).json()
session = res[‘sessionId’]
driver = url+session
return driver

def get_url(self,url):
    base_url = self.driver+'/url'
    data = json.dumps({
        "url":url
    })
    requests.post(base_url,data)

def find_element_by_id(self,value):
    base_url = self.driver + '/element'
    #json.dumps()将字典转换为字符串
    data = json.dumps({
        "using": 'id',
        "value":value
    })
    res = requests.post(base_url,data).json()
    print(res)

if name == ‘main’:
request_driver = requests_webdriver()
request_driver.get_url(‘https://www.imooc.com/user/newlogin/from_url/’)
request_driver.find_element_by_id(‘email’)
图片描述
代码里 chrome_driver这个方法有sessionId,但下面没有调用这个方法,调用的是find_element_by_id方法,所以sessionId是怎么来的呢,而且始终不太明白为什么要有这个代码 url = ‘http://127.0.0.1:4444/wd/hub/session/’,执行这个selenium-server-standalone-3.9.1.jar,才能运行

写回答

2回答

慕粉1212355798

提问者

2021-05-16

//img.mukewang.com/szimg/60a0f63d09ee47e413520684.jpg

控制台:

D:\练习python\seleniumpythonbase\venv\Scripts\python.exe D:/练习python/seleniumpythonbase/ThreeNode/requests_open_browser.py

1aeb8246e514fab5842e408df9501b28

{'state': 'success', 'sessionId': None, 'hCode': 1071117855, 'value': {'element-6066-11e4-a52e-4f735466cecf': 'a288e26f-b2ac-435c-a202-758f72444fc7'}, 'class': 'org.openqa.selenium.remote.Response', 'status': 0}

Process finished with exit code 0

老师,id换为了name,'sessionId': None  还是为空,element取到的字符串 'a288e26f-b2ac-435c-a202-758f72444fc7',sessionId为空是不是还是不对啊

0
4
厉害了龟龟
这个应该是版本问题,我这边也是这样,不过不影响操作
2021-07-01
共4条回复

Mushishi

2021-04-10

你session id只是上面创建的时候那个啊。一直用的都是那个id 没有变。你下面findelement 提示的是没有找到这个元素 和id没毛线关系

0
2
Mushishi
回复
慕粉1212355798
就是 他后面所有的url都带上了session的。不然不知道是你去访问。selenium-server这个你认为是我们的服务。如果你不要就直接命令启动chromedriver也是可以的 只是端口和方法不一样
2021-04-11
共2条回复

助力Python功能测试人员进阶Web自动化测试

轻松转型,快速胜任自动化测试工程师岗位

916 学习 · 607 问题

查看课程