不同登录界面的问题

来源:5-6 实现多窗口切换

MR小五

2021-02-17

老师我的代码,在登录界面小弹框中输入用户名和密码就会报错,如下
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get(“https://www.imooc.com/”)
driver.find_element_by_id(“js-signin-btn”).click()
driver.find_element_by_name(“email”).send_keys(“")
driver.find_element_by_name(“password”).send_keys("
”)
driver.find_element_by_class_name(“moco-btn”).click()
time.sleep(2)
driver.get(“https://www.imooc.com/user/setbindsns”)
报错信息
"D:\python project lianxi01\WebDriver\venv\Scripts\python.exe" “D:/python project lianxi01/WebDriver/open_windows.py"
Traceback (most recent call last):
File “D:/python project lianxi01/WebDriver/open_windows.py”, line 6, in
driver.find_element_by_name(“email”).send_keys(“")
File “D:\python project lianxi01\WebDriver\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 496, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File “D:\python project lianxi01\WebDriver\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 978, in find_element
’value’: value})[‘value’]
File “D:\python project lianxi01\WebDriver\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 321, in execute
self.error_handler.check_response(response)
File “D:\python project lianxi01\WebDriver\venv\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”:“name”,“selector”:“email”}
(Session info: chrome=88.0.4324.150)
(Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 10.0.18363 x86_64)
但是我按照老师的慕课网的登录界面就可以正常执行,代码如下:
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get(“https://www.imooc.com/user/newlogin/from_url/”)
driver.find_element_by_name(“email”).send_keys("
”)
driver.find_element_by_name(“password”).send_keys(”****")
driver.find_element_by_class_name(“moco-btn”).click()
time.sleep(2)
driver.get(“https://www.imooc.com/user/setbindsns”)
我不明白的是,为啥在小弹窗的登录界面执行到第六行就会报错,但是在老师给的全屏界面的登录界面就能正常执行成功呢?

写回答

1回答

Mushishi

2021-02-17

driver.find_element_by_name(“email”).send_keys(“")   你看你这个

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:“name”,“selector”:“email”}

他报错是说email去找元素没找到。1、有可能你弹窗 元素没有加载完毕  你可以等待一下  2、就是模态框的问题

0
2
MR小五
弹窗之后设置等待一下就可以了,谢谢老师
2021-02-18
共2条回复

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

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

917 学习 · 607 问题

查看课程