from time import sleep
# 导包
from selenium import webdriver
# 导入事件包
from selenium.webdriver import ActionChains
# 显性等待导包
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import pytest
class Test_JD():
def test_oo1(self):
# 导入谷歌驱动
web = webdriver.Chrome()
# 窗口最大化
web.maximize_window()
url = "http://www.jd.com/"
web.get(url)
# 进入首页点击登录
web.find_element_by_css_selector(".user_login").click()
# 显性等待
WebDriverWait(web, 30, 0.1).until(
EC.presence_of_element_located((By.XPATH, "//*[@id='content']/div[2]/div[1]/div/div[3]/a")))
# 匿名函数判断
# lambda x: x.find_element_by_xpath("//*[@id='content']/div[2]/div[1]/div/div[3]/a"))
# 登录页面点击账户登录
web.find_element_by_xpath("//*[@id='content']/div[2]/div[1]/div/div[3]/a").click()
# 定位账户输入框
username = web.find_element_by_css_selector(".itxt")
# 清空账户数据
username.clear()
# 进行输入
username.send_keys(17639011503)
# 定位密码输入框
password = web.find_element_by_css_selector("#nloginpwd")
# 清空输入框内容
password.clear()
# 进行输入密码
password.send_keys('02207090jin')
# 登录
web.find_element_by_css_selector("#loginsubmit").click()
# 隐性等待
web.implicitly_wait(30)
# 移动光标到指定导航栏展示出隐藏导栏
ActionChains(web).move_to_element(web.find_element_by_xpath('//*[@id="J_cate"]/ul/li[2]/a[1]')).perform()
# 修改js隐藏内容为可见内容
# js = "document.getElementById(\"cate_item1\").style.display='block';"
# web.execute_script(js)
# 隐性等待
web.implicitly_wait(30)
# 定位隐藏内容进行点击 手机卡
web.find_element_by_xpath('//*[@id="cate_item2"]/div[1]/div[2]/dl[2]/dd/a[2]').click()
# 获取全部的url
handle = web.window_handles
# 切换到最后一个页面
web.switch_to_window(handle[-1])
# 点击商品
web.find_element_by_xpath('//*[@id="J_goodsList"]/ul/li[1]/div/div[3]/a/em').click()
# 获取全部的url
handle = web.window_handles
# 切换到最后一个页面
web.switch_to_window(handle[-1])
# 切换商品
web.find_element_by_xpath('//*[@id="choose-attr-1"]/div[2]/div[7]/a/i').click()
# 点击选择号码
web.find_element_by_xpath('//*[@id="choose-btns"]/a').click()
# 隐性等待
web.implicitly_wait(30)
# 选择第一个号码
web.find_element_by_xpath('//*[@id="root"]/div[3]/div[2]/div[1]/div[3]/div/div[1]/ul/li[1]').click()
# 点击下一步
web.find_element_by_xpath('//*[@id="root"]/div[3]/div[2]/div[2]/div[4]/button').click()
# 隐性等待
web.implicitly_wait(30)
# 定位机主姓名
name = web.find_element_by_xpath('//*[@id="root"]/div[3]/div[2]/div[3]/div[1]/span[2]/input')
# 清空机主姓名输入框
name.clear()
# 输入机主姓名
name.send_keys('王富贵')
# 定位身份证
shenfenzheng = web.find_element_by_xpath('//*[@id="root"]/div[3]/div[2]/div[3]/div[2]/span[2]/input')
# 清空输入框
shenfenzheng.clear()
# 输入身份证
shenfenzheng.send_keys(410410410410410)
# 点上协议对号
web.find_element_by_xpath('//*[@id="root"]/div[3]/div[3]/div[3]/label/span').click()
# 加入购物车
web.find_element_by_xpath('//*[@id="root"]/div[3]/div[3]/div[5]/button').click()
# 判断是否加入购物车
assert web.find_element_by_xpath('//*[@id="result"]/div/div/div[1]/div[1]/h3').text == "商品已成功加入购物车!"
# 断言页面不能为空
# assert "No results found." not in web.page_source
sleep(10)
# 退出
web.quit()
if __name__ == '__main__':
# 运行所以当前文件夹所有py文件,不要将"JD_TEST.PY"写入
pytest.main(["--html=./JD.html", "JD_TEST.PY", "-s"])
selenium自动化
最新推荐文章于 2022-05-30 16:03:37 发布