python selenium 预约iPhone12 pro

环境

简单说说需要的环境,这篇文章主要说应用

python3安装

浏览器安装

  • Chrome浏览器:下载链接
  • ChromeDriver:没有下载的同学可通过ChromeDriver下载链接下载,记得版本要与Chrome浏览器一致,下载完毕后放入对应的目录
    • Windows:C:\Program Files (x86)\Google\Chrome\Application
    • Mac:/usr/local/bin/

selenium安装

  • selenium:pip install selenium
    需要详细安装教程的同学可以百度下,有很多教程,可以在评论区留言

常用查找方法

单个元素

  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector

多个元素

  • find_elements_by_name
  • find_elements_by_xpath
  • find_elements_by_link_text
  • find_elements_by_partial_link_text
  • find_elements_by_tag_name
  • find_elements_by_class_name
  • find_elements_by_css_selector

例子

登录Jenkins

演示自动登录Jenkins后,进入某一个工程,咋们游戏测试感觉使用selenium的几率并不高,一般是测游戏后台的时候用,学会一些简单的应用感觉够用,点到即止,软测和咋们不一样

1.启动Chrome浏览器

from selenium import webdriver
from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome()

2.打开我的Jenkins网站

driver.get("http://8.129.88.6:8080/login?from=%2F")

3.隐式等待网页加载完毕

driver.implicitly_wait(3)

4.断言标题

assert "Jenkins" in driver.title

5.根据name查找元素

elem = driver.find_element_by_name("j_username")

6.输入账号密码之前先清空输入栏

elem.clear()
elem.send_keys("tester")
elem = driver.find_element_by_name("j_password")
elem.clear()
elem.send_keys("xxx")

7.根据ID查找元素

elem = driver.find_element_by_id("remember_me")

8.正常调用点击

# elem.click()
# 上面点击方法失效用execute_script
driver.execute_script("arguments[0].click();", elem)

9.回车键

elem.send_keys(Keys.RETURN)

10.登录后切换句柄

driver.current_window_handle
# 另一种切换句柄
# driver.switch_to.window(driver.window_handles[0])

11.登录之后查找指定项目

elem = driver.find_element_by_id("job_client_build")

12.进入对应的项目

elem = driver.find_element_by_xpath('//*[@id="job_client_build"]/td[3]/a')
driver.execute_script("arguments[0].click();", elem)

13.执行完退出

driver.close()

14.完整代码

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@File    :   lianxi.py
@Contact :   512759438@qq.com
@Author  :   Jian
"""

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# 启动Chrome浏览器
driver = webdriver.Chrome()
# 打开我的Jenkins网站
driver.get("http://8.129.88.6:8080/login?from=%2F")
# 隐式等待网页加载完毕
driver.implicitly_wait(3)
# 断言标题
assert "Jenkins" in driver.title
# 根据name查找元素
elem = driver.find_element_by_name("j_username")
# 输入内容之前先清空
elem.clear()
elem.send_keys("admin")
elem = driver.find_element_by_name("j_password")
elem.clear()
elem.send_keys("xxx")
# 根据ID查找元素
elem = driver.find_element_by_id("remember_me")
# 正常调用点击
# elem.click()
# 上面点击方法失效用execute_script
driver.execute_script("arguments[0].click();", elem)
# 回车键
elem.send_keys(Keys.RETURN)
# 登录后切换句柄1
driver.current_window_handle
# 登录后切换句柄2
# driver.switch_to.window(driver.window_handles[0])
# 登录之后查找指定项目
elem = driver.find_element_by_id("job_client_build")
# 进入对应的项目
elem = driver.find_element_by_xpath('//*[@id="job_client_build"]/td[3]/a')
driver.execute_script("arguments[0].click();", elem)
# 退出
driver.close()

预约iPhone12 pro/proMax

早段时间国内iPhone12系列一直没货,发售当天黄牛一度加价1500元一台,迫不得已把目光转向了澳门,澳门虽然不加价但需要预约,试过澳门预约的朋友都知道,靠手速是不够科学的,既然咋有自动化测试,那不整个自动预约岂不是对不起自己,官网价按人民币汇率折算,省了1300块,顶小编上好几天班的工资,废话不多讲,干活,先整个视频看看效果。

selenium_iphone

上面的例子每一步都介绍了,这里大同小异,就不过多介绍。

my_config = {
    '太平洋藍色':0,
    '石墨色':1,
    '金色':2,
    '銀色':3,
    '澳門銀河店':"xxx",
    '澳門金沙店':"xxx",
    'iPhone12_pro_url':'xxx',
    'iphone12_pro_max_url':'xxx',
}

def iPhone12(iPhone_url='iPhone12_pro_url',color=None,capacity=None,quantity=None,store=None,account=None,password=None,
         phoneNumber=None,registrationCode='86'):
    driver = webdriver.Chrome()
    driver.get(my_config[iPhone_url])
    driver.implicitly_wait(3)
    # selenium UI自动化测试时,可能会遇到元素可以定位到,但不可点击的情况,用driver.execute_script("arguments[0].click();", elem)
    color_elem = driver.find_element_by_xpath(f'//*[@id="color-{my_config[color]}"]')
    driver.execute_script("arguments[0].click();", color_elem)

    capacity_elem = driver.find_element_by_xpath(f'//*[@id="capacity-{my_config[capacity]}gb"]')
    driver.execute_script("arguments[0].click();", capacity_elem)

    # 数量
    quantity_elem = Select(driver.find_element_by_xpath('//*[@id="quantity"]'))
    quantity_elem.select_by_value(f"{quantity}")
    # 商店
    store_elem = Select(driver.find_element_by_xpath('//*[@id="anchor-store"]'))
    store_elem.select_by_value(store)

    # 提交
    submit_elem = driver.find_element_by_xpath('//*[@id="pricebox"]/div[3]/div/div/p/button')
    # driver.execute_script("arguments[0].click();", submit_elem)
    submit_elem.send_keys(Keys.RETURN)
    driver.implicitly_wait(8)

    # 登录跳转后要切游标,不然会找不到元素
    driver.switch_to.frame(0)
    # 账号
    input_id = driver.find_element_by_id('account_name_text_field')
    input_id.send_keys(account)
    driver.find_element_by_xpath('//*[@id="sign-in"]').click()
    # 密码
    input_password = driver.find_element_by_xpath('//*[@id="password_text_field"]')
    input_password.send_keys(password)
    driver.find_element_by_xpath('//*[@id="sign-in"]').click()

    driver.implicitly_wait(20)
    # 切换回主页面
    driver.switch_to_default_content()
    # 电话号码
    phone_number = driver.find_element_by_id('phoneNumber')
    phone_number.send_keys(phoneNumber)

    # 登记代码
    password = driver.find_element_by_id('registrationCode')
    password.send_keys('your registrationCode')
    # 电话号码地区
    phone_code = Select(driver.find_element_by_xpath('//*[@id="phoneCountryCode"]'))
    phone_code.select_by_value(str(registrationCode))

    # 提交
    submit_elem = driver.find_element_by_xpath('//*[@id="form"]/div/div/div[3]/div[3]/div/div/button')
    submit_elem.send_keys(Keys.RETURN)

    input('anyKey')
    driver.close()

selenium大概的样子介绍完了。
欢迎评论留言,要是觉得不错点个赞哦!

最后的最后,各位的关注、点赞、收藏、碎银子打赏是对我最大的支持,谢谢大家!
需要源码的小伙伴关注微信公众号ID:gameTesterGz
或扫描二维码关注回复selenium即可
微信二维码

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游戏测试-AJian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值