经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
《最新出炉》系列初窥篇-Python+Playwright自动化测试-36-处理web页面定位toast-下篇 - 北京-宏哥
来源:cnblogs  作者:北京-宏哥  时间:2023/12/27 15:05:32  对本文有异议

1.简介

按理说,现在这种一闪而过的toast的已经相当普及或者是见怪不怪了,应该网上的大网站会用到的,偶然的在一次租房中,看到了这种场景,所以宏哥决定将其拿来主义,进行演示实践一下。

2.租房网站

事先声明啊,宏哥没有收他们的广告费啊,纯粹是为了学习和实战的。

2.1被测网址

1.被测网址的地址:

https://login.anjuke.com/login/form?history=aHR0cHM6Ly9iZWlqaW5nLmFuanVrZS5jb20v

2.网页如下图:

3.项目实战

今天就利用上边的实际网站,进行讲解和演示一下,同时来巩固一下前边的知识,温故而知新。

3.1代码设计

3.2参考代码

  1. # coding=utf-8??
  2.  
  3. # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
  4.  
  5. # 2.注释:包括记录创建时间,创建人,项目名称。
  6. '''
  7. Created on 2023-12-09
  8. @author: 北京-宏哥
  9. 公众号:北京宏哥
  10. Project: 《最新出炉》系列初窥篇-Python+Playwright自动化测试-36-处理web页面定位toast-下篇
  11. '''
  12. # 3.导入模块
  13. from playwright.sync_api import Playwright, sync_playwright, expect
  14. def run(playwright: Playwright) -> None:
  15. browser = playwright.chromium.launch(headless=False)
  16. context = browser.new_context()
  17. page = context.new_page()
  18. page.goto("https://login.anjuke.com/login/form?history=aHR0cHM6Ly9iZWlqaW5nLmFuanVrZS5jb20v")
  19. page.wait_for_timeout(2000)
  20. # 操作 iframe 上的元素
  21. frame = page.frame_locator("iframe[id^=iframeLoginIfm]")
  22. # xpath 匹配
  23. frame.locator('[id="phoneIpt"]').fill('13617831920')
  24. frame.locator('[id="smsIpt"]').fill('666666')
  25. frame.locator('[id="checkagree"]').click()
  26. frame.locator('[id="smsSubmitBtn"]').click()
  27. #page.pause()
  28. #toast_text = page.locator('[className="toast"]').inner_text()
  29. toast_text = frame.get_by_text('请获取验证码')
  30. page.wait_for_timeout(3000)
  31. #page.pause()
  32. print("Toast text is",toast_text.inner_text())
  33. context.close()
  34. browser.close()
  35. with sync_playwright() as playwright:
  36. run(playwright)

3.3运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

4.小结

这里宏哥再次提醒小伙伴或者童鞋们,要注意iframe的陷阱,否则定位一辈子也定位不到元素,还有就是要注意iframe里toast的定位方法。宏哥用了xpath和className不好使,想必各位从宏哥注释的代码就可以看出了,最后实在不行了,就用了text的定位。而且这个元素比较***钻,就一个className,其他的什么属性都没有。也可能与Iframe的出现有关系吧。。。

好了,今天时间也不早了,宏哥就讲解和分享到这里,感谢您耐心的阅读,希望对您有所帮助。

原文链接:https://www.cnblogs.com/du-hong/p/17835729.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号