Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 670|回复: 13

[纯净水] 远景论坛签到, python自动化测试脚本 [复制链接]

Rank: 9

UID
4720714
帖子
5169
PB币
6924
贡献
0
技术
11
活跃
1632
发表于 2020-11-12 10:46:44 |显示全部楼层
1. 先决条件, 安装python
https://www.python.org/ftp/python/3.9.0/python-3.9.0-amd64.exe
2. 升级pip, 并设置pypi镜像是清华大学镜像
  1. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
  2. pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
参考: https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
3. 安装必要的库
  1. pip install pytest
  2. pip install selenium
复制代码
4. 下载与配置webdriver
  4.1) 如果你使用chrome浏览器
http://npm.taobao.org/mirrors/chromedriver
  4.2) 如果你使用edge浏览器
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
左边的是chromium edge, 右边是 UWP edge

如果你使用chromium edge 而不是 UWP edge,
到python安装目录编辑
  python\Lib\site-packages\selenium\webdriver\edge\webdriver.py
找到 def __init__(self, executable_path=
里面改成 'msedgedriver.exe'

下载号的webdriver解压后添加到环境变量

5. 签到脚本
  1. # Generated by Selenium IDE
  2. import pytest
  3. import time
  4. import json
  5. from selenium import webdriver
  6. from selenium.webdriver.common.by import By
  7. from selenium.webdriver.common.action_chains import ActionChains
  8. from selenium.webdriver.support import expected_conditions as EC
  9. from selenium.webdriver.support.wait import WebDriverWait
  10. from selenium.webdriver.common.keys import Keys
  11. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

  12. username = "用户名"
  13. password = "密码"

  14. class TestAa():
  15.     def setup_method(self):
  16.         self.driver = webdriver.Edge()
  17.         self.vars = {}

  18.     def teardown_method(self):
  19.         self.driver.quit()

  20.     def test_aa(self):
  21.         self.driver.get("http://i.pcbeta.com/home.php?mod=task&item=new")
  22.         self.driver.set_window_size(800, 600)
  23.         wait = WebDriverWait(self.driver, 10)

  24.         located = (By.NAME, "loginsubmit")
  25.         wait.until(EC.presence_of_element_located(located))

  26.         self.driver.find_element(By.NAME, "username").send_keys(username)
  27.         self.driver.find_element(By.NAME, "password").send_keys(password)
  28.         self.driver.find_element(By.NAME, "loginsubmit").click()

  29.         located = (By.XPATH, "//*[@id=\"ct\"]/div[1]/div/div/table/tbody/tr/td[4]/a")
  30.         wait.until(EC.presence_of_element_located(located))
  31.         self.driver.find_element(By.XPATH, "//*[@id=\"ct\"]/div[1]/div/div/table/tbody/tr/td[4]/a").click()
  32.         located = (By.ID, "myprompt")
  33.         wait.until(EC.presence_of_element_located(located))
  34.         self.driver.find_element(By.ID, "myprompt").click()


  35. if __name__ == '__main__':
  36.     pytest.main()
复制代码
论坛的代码缩进有问题, python的缩进是不能乱的, 只好贴出附件了
test_aa.7z (760 Bytes, 下载次数: 3)

如果你使用chrome, 那么 webdriver.Edge() 改成 webdriver.Chrome()

代码是工具生成略微调整, 有没用的地方还有啰嗦的写法, 不要在意, 我懒得改.

6. 保存文件 比如 test_aa.py, 编码集选择UTF-8

脚本有问题, 提

请使用cmd窗口执行,
python test_aa.py
如果有报错, 把报错截出来.

7. 安利, "selenium IDE", 这个浏览器插件, edge插件商店可以直接下载, 很方便, "傻瓜式", 自动生成脚本, 只要"稍微"改改就能用了.
https://microsoftedge.microsoft.com/addons/detail/selenium-ide/ajdpfmkffanmkhejnopjppegokpogffp?hl=zh-CN
1

查看全部评分

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15422
PB币
546
贡献
0
技术
82
活跃
1721

十周年 Win10先驱者 8周年庆典勋章

发表于 2020-11-12 11:03:19 |显示全部楼层
那我觉得直接油猴一把梭(像aa的脚本那样)

山中何事?松花酿酒,春水煎茶。

Rank: 11Rank: 11Rank: 11

UID
1638437
帖子
6817
PB币
24
贡献
0
技术
95
活跃
2876
发表于 2020-11-12 11:05:52 |显示全部楼层
看起来很厉害的样子,为你点赞!

Rank: 9

UID
4720714
帖子
5169
PB币
6924
贡献
0
技术
11
活跃
1632
发表于 2020-11-12 11:10:52 |显示全部楼层
xiao201261 发表于 2020-11-12 11:03
那我觉得直接油猴一把梭(像aa的脚本那样)

可以定时签到, 随时

Rank: 7Rank: 7Rank: 7

UID
4803496
帖子
2002
PB币
2262
贡献
0
技术
0
活跃
2456
发表于 2020-11-12 11:11:56 |显示全部楼层
楼主真是犀利

Rank: 7Rank: 7Rank: 7

UID
4854659
帖子
1668
PB币
2868
贡献
0
技术
0
活跃
769
发表于 2020-11-12 11:12:05 |显示全部楼层
每天上来看看不就顺手签到了嘛?

Rank: 11Rank: 11Rank: 11

UID
4819662
帖子
11461
PB币
281
贡献
0
技术
60
活跃
6321

远景开发达人

发表于 2020-11-12 11:26:17 |显示全部楼层
xiao201261 发表于 2020-11-12 11:03
那我觉得直接油猴一把梭(像aa的脚本那样)

油猴脚本也得打开浏览器才能执行啊

喵星人

Rank: 9

UID
4863198
帖子
3798
PB币
20
贡献
0
技术
0
活跃
2540
发表于 2020-11-12 11:52:23 |显示全部楼层
感谢楼主分享!

Rank: 9

UID
4720714
帖子
5169
PB币
6924
贡献
0
技术
11
活跃
1632
发表于 2020-11-12 12:05:41 来自手机 |显示全部楼层
じ☆ve戀☆づ 发表于 2020-11-12 11:12
每天上来看看不就顺手签到了嘛?

主要是抛砖引玉,同时提供一个简单的Python脚本给网友学习使用。分享的意义在于可以收获更多。

Rank: 9

UID
4720714
帖子
5169
PB币
6924
贡献
0
技术
11
活跃
1632
发表于 2020-11-12 12:08:56 来自手机 |显示全部楼层
じ☆ve戀☆づ 发表于 2020-11-12 11:12
每天上来看看不就顺手签到了嘛?

顺便一提,脚本里最复杂的 xpath也不需要手写,浏览器审查元素可以直接复制元素的xpath。可以说门槛还是很低的,正好给不会脚本又想学习的网友一个指引

Rank: 9

UID
4787678
帖子
2847
PB币
304
贡献
0
技术
0
活跃
1224
发表于 2020-11-12 12:09:34 |显示全部楼层
楼主好厉害

杀神

UID
267713
帖子
33499
PB币
174484
贡献
0
技术
48
活跃
254298

十一周年 十周年 7周年庆典勋章 9周年庆典勋章 8周年庆典勋章

发表于 2020-11-12 12:28:15 |显示全部楼层
http://i.pcbeta.com/home.php?mod=task
把这个保存在浏览器收藏里,点开的时候多点一下就好了

Rank: 9

UID
4720714
帖子
5169
PB币
6924
贡献
0
技术
11
活跃
1632
发表于 2020-11-12 12:48:47 |显示全部楼层
bmt 发表于 2020-11-12 12:28
http://i.pcbeta.com/home.php?mod=task
把这个保存在浏览器收藏里,点开的时候多点一下就好了

我可以跑定时任务, 等我中午吃饭的时候, 签到

Rank: 11Rank: 11Rank: 11

UID
682716
帖子
11760
PB币
10775
贡献
0
技术
0
活跃
2200
发表于 2020-11-13 15:16:20 |显示全部楼层
好厉害的
回顶部
Copyright (C) 2005-2021 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛