对每行代码进行详细注释,定位除外!

from selenium import webdriver
import unittest
from time import sleep
class id_login(unittest.TestCase):
@classmethod
def setUp(cls) -> None:
cls.drive=webdriver.Chrome()
cls.drive.get('https://www.jd.com/?cu=true&utm_source=baidu-pinzhuan&utm_medium=cpc&utm_campaign=t_288551095_baidupinzhuan&utm_term=0f3d30c8dba7459bb52f2eb5eba8ac7d_0_5990158536e74c4b803fc68c40a14124%27)
cls.drive.maximize_window()
sleep(2)
def test_login(self):
self.drive.implicitly_wait(5)
self.drive.find_elements_by_class_name('fr')
self.drive.find_element_by_class_name('link-login').click()
self.drive.find_element_by_class_name('login-form')
self.drive.find_element_by_link_text('账户登录').click()
self.drive.find_element_by_id('loginname').send_keys('17378400789')
self.drive.find_element_by_id('nloginpwd').send_keys('qwer12345')
self.drive.find_element_by_id('loginsubmit').click()
sleep(7)
user=self.drive.find_element_by_class_name('nickname').text
self.assertEqual(user,'jd_173784xrl')
sleep(1)
self.drive.find_element_by_id('search')
self.drive.find_element_by_id('key').send_keys('笔记本电脑')
sleep(1)
self.drive.find_element_by_class_name('button').click()
sleep(5)
js1 = "window.scrollTo(0,1000)"
self.drive.execute_script(js1)
sleep(1)
js2 = "window.scrollTo(0,0)"
self.drive.execute_script(js2)
sleep(2)
self.drive.back()
sleep(2)
self.drive.find_element_by_id('search')
self.drive.find_element_by_id('key').send_keys('100027210412')
sleep(1)
self.drive.find_element_by_class_name('button').click()
sleep(1)
js3 = "window.scrollTo(0,500)"
self.drive.execute_script(js3)
sleep(1)
self.drive.find_element_by_id('choose-btns')
self.drive.find_element_by_id('InitCartUrl').click()
sleep(1)
self.drive.find_element_by_class_name('success-wrap')
self.drive.find_element_by_id('GotoShoppingCart').click()
sleep(2)
self.drive.find_element_by_class_name('cart-floatbar ')
self.drive.find_element_by_class_name('btn-area').click()
sleep(2)
js4 = "window.scrollTo(0,500)"
self.drive.execute_script(js4)
sleep(1)
self.drive.find_element_by_id('checkout-floatbar')
self.drive.find_element_by_class_name('checkout-submit').click()
sleep(2)
js5 = "window.scrollTo(0,500)"
self.drive.execute_script(js5)
sleep(1)
self.drive.find_element_by_xpath("//div[text()='立即支付']").click()
sleep(5)
self.drive.quit()
if name=='main':
unittest.main()

导入模块
from selenium import webdriver
import unittest
from time import sleep
定义id_login类继承unittest.TestCase单元测试类
class id_login(unittest.TestCase):
重写unittest.TestCase单元测试类的setUp函数
@classmethod
def setUp(cls) -> None:
打开浏览器
cls.drive=webdriver.Chrome()
浏览器打开网址
cls.drive.get('https://www.jd.com/?cu=true&utm_source=baidu-pinzhuan&utm_medium=cpc&utm_campaign=t_288551095_baidupinzhuan&utm_term=0f3d30c8dba7459bb52f2eb5eba8ac7d_0_5990158536e74c4b803fc68c40a14124%27)
浏览器窗口最大化
cls.drive.maximize_window()
延时2秒
sleep(2)
重写unittest.TestCase单元测试类的test_login函数
def test_login(self):
隐性等待5秒
self.drive.implicitly_wait(5)
定位元素和输入用户名与密码
self.drive.find_elements_by_class_name('fr')
self.drive.find_element_by_class_name('link-login').click()
self.drive.find_element_by_class_name('login-form')
self.drive.find_element_by_link_text('账户登录').click()
self.drive.find_element_by_id('loginname').send_keys('17378400789')
self.drive.find_element_by_id('nloginpwd').send_keys('qwer12345')
self.drive.find_element_by_id('loginsubmit').click()
sleep(7)
user=self.drive.find_element_by_class_name('nickname').text
单元测试中检查两个值的相等性
self.assertEqual(user,'jd_173784xrl')
sleep(1)
self.drive.find_element_by_id('search')
self.drive.find_element_by_id('key').send_keys('笔记本电脑')
sleep(1)
self.drive.find_element_by_class_name('button').click()
sleep(5)
浏览器窗口垂直滚动到1000的位置
js1 = "window.scrollTo(0,1000)"
self.drive.execute_script(js1)
sleep(1)
再回滚动到0的位置,应该是为了让页面下边的内容加载
js2 = "window.scrollTo(0,0)"
self.drive.execute_script(js2)
sleep(2)
浏览器返回上一页面
self.drive.back()
sleep(2)
self.drive.find_element_by_id('search')
self.drive.find_element_by_id('key').send_keys('100027210412')
sleep(1)
self.drive.find_element_by_class_name('button').click()
sleep(1)
浏览器窗口垂直滚动到500的位置
js3 = "window.scrollTo(0,500)"
self.drive.execute_script(js3)
sleep(1)
self.drive.find_element_by_id('choose-btns')
self.drive.find_element_by_id('InitCartUrl').click()
sleep(1)
self.drive.find_element_by_class_name('success-wrap')
self.drive.find_element_by_id('GotoShoppingCart').click()
sleep(2)
self.drive.find_element_by_class_name('cart-floatbar ')
self.drive.find_element_by_class_name('btn-area').click()
sleep(2)
js4 = "window.scrollTo(0,500)"
self.drive.execute_script(js4)
sleep(1)
self.drive.find_element_by_id('checkout-floatbar')
self.drive.find_element_by_class_name('checkout-submit').click()
sleep(2)
js5 = "window.scrollTo(0,500)"
self.drive.execute_script(js5)
sleep(1)
self.drive.find_element_by_xpath("//div[text()='立即支付']").click()
sleep(5)
关闭浏览器窗口
self.drive.quit()
if name=='main':
启用unittest单元测试
unittest.main()

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img