请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

封装后提示找不到‘userId’

#这是封装代码,跟老师的一样
def switch_windows(self,title_name=None):
handle_list = self.driver.window_handles
current_handle = self.driver.current_window_handle
for i in handle_list:
if i != current_handle:
time.sleep(1)
self.driver.switch_to.window(i)
if self.assert_title(‘title_name’):
break
time.sleep(2)
self.driver.find_element_by_id(‘userId’).send_keys(‘test’)
time.sleep(2)

#执行代码:
selfnium_driver = SeleniumDriver(‘chrome’)
print(selfnium_driver.open_url_is_true(‘http://www.imooc.com’,‘程序员’))
time.sleep(60)
selfnium_driver.switch_windows(‘网站连接’)
time.sleep(3)
selfnium_driver.close_driver()

错误打印信息:

(base) E:\Anaconda3\vscode>E:/Anaconda3/python.exe e:/Anaconda3/vscode/open_browser.py

DevTools listening on ws://127.0.0.1:14572/devtools/browser/58fa8475-51a2-4199-82d6-f7fda374d4ba
libpng warning: iCCP: cHRM chunk does not match sRGB
True
libpng warning: iCCP: cHRM chunk does not match sRGB
Traceback (most recent call last):
File “e:/Anaconda3/vscode/open_browser.py”, line 86, in
selfnium_driver.switch_windows(‘网站连接’)
File “e:/Anaconda3/vscode/open_browser.py”, line 78, in switch_windows
self.driver.find_element_by_id(‘userId’).send_keys(‘test’)
File “E:\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 360, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File “E:\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 978, in find_element
’value’: value})[‘value’]
File “E:\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 321, in execute
self.error_handler.check_response(response)
File “E:\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py”, line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:“css selector”,“selector”:"[id=“userId”]"}
(Session info: chrome=78.0.3904.87)

[13292:18728:1104/105703.102:ERROR:gcm_channel_status_request.cc(145)] GCM channel request failed.

正在回答 回答被采纳积分+3

1回答

Mushishi 2019-11-04 12:39:20

Unable to locate element: {“method”:“css selector”,“selector”:"[id=“userId”]"}
没有找到这个元素,你看你定位方式为啥userid,这个不应该是我们先去配置文件通过userid拿到email这样的定位值么

0 回复 有任何疑惑可以回复我~
  • 提问者 红尘过客zuozs #1
    封装前也是这样写,是能正常通过userId定位到微博账户名输入框的,为什么拿到这边封装就不可以了呢?而且代码完全跟老师写的一样啊
    回复 有任何疑惑可以回复我~ 2019-11-04 14:20:30
  • Mushishi 回复 提问者 红尘过客zuozs #2
    你封装需要把readini那个也要封装啊,userid 这样的定位信息要有,你看我们是不是保存了一个变例如useremail=id>rmail这样的信息,这里拿到usermail然后去拆分
    回复 有任何疑惑可以回复我~ 2019-11-04 22:00:19
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信