原始需求:
实现过程:
遇到困难:
试图解决:
页面地址只限内网访问,还需要什么信息尽管提,我会尽快回复
有没有熟练的老哥指点一下哪里可以优化
感谢@luzihang #8 提供的第二个方法,花费了最小资源使监控脚本能正常运行, 此贴问题解决,当然也欢迎更多的讨论或者大佬指点更好的姿势
1
TimePPT 2021-02-01 14:30:08 +08:00
需求是,因为工单系统邮件推送通知异常,所以写了个 python 脚本监控了本地浏览器打开的工单后台,有新 ticket 就直接本地通知?
|
2
luzihang 2021-02-01 14:32:21 +08:00
加一个
driver.fresh() time.sleep(5) |
3
nznd OP @TimePPT #1 是的,工单系统那边说已经在做了,但是进度缓慢(上线 3 个月了还没修复) 貌似是要分配用户组,但是一直没迁移过来,领导也不知道怎么办,给的 work round 是每天看一看... 客户已经切过去了...
(是从一个大公司里买的然后到内网部署,可能部门没划分好(? 反正很无语... |
6
liubiantao 2021-02-01 14:54:42 +08:00
你需要的可能就是一个 chrome 插件
[Distill Web Monitor - Chrome 网上应用店]( https://chrome.google.com/webstore/detail/distill-web-monitor/inlikjemeeknofckkjolnjbpehgadgge ) [Web Scraper - Free Web Scraping - Chrome 网上应用店]( https://chrome.google.com/webstore/detail/web-scraper-free-web-scra/jnhgnonknehpejjnehehllkliplmbmhn ) |
7
ku360517703 2021-02-01 15:00:24 +08:00
headless 不会导致获取不到元素的。headless 可以指定窗口大小,元素基本都能找到的
|
8
luzihang 2021-02-01 15:05:26 +08:00 1
三个尝试建议
driver 就是你当前的任务 Webdriver 1 、使用容器版本 Chrome,比 headless 感觉功能完整 2 、使用切换句柄 windows = driver.window_handles # 获取打开的多个窗口句柄 driver.switch_to.window(windows[-1]) # 切换到当前最新打开的窗口 3 、试试用 pyautogui ?先获取 webdriver 的顶点坐标,用 pyautogui 去模拟键鼠点击那里,就可以置顶。 x = driver.get_window_rect().get('x') y = driver.get_window_rect().get('y') pyautogui.moveTo(x + 2, y + 2) pyautogui.click() |
9
nznd OP @TimePPT #5 可以学习一下,这周看看
@liubiantao #6 这个插件不能做集成,我想后续加上发送邮件功能,给 team 里每个人都发送一封邮件,刚刚试了下第一个还是存在不能加载元素的情况,第二个就没有尝试了 @ku360517703 #7 真的没有元素,窗口大小指定了 800x600 只要有前台窗口就能获取,没有前台窗口就获取不到,100%复现 @luzihang #8 容器的有考虑,如果没有更好的方案就尝试一下,第二个建议看着很成功,准备实践一下! 十分感谢!! |
10
tisswb 2021-02-04 11:07:00 +08:00
playwright 了解一下
|