【实测】selenium脚本解决随机弹窗广告问题

这篇具有很好参考价值的文章主要介绍了【实测】selenium脚本解决随机弹窗广告问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【实测】selenium脚本解决随机弹窗广告问题,自动化测试,selenium,python,测试工具,测试工程师,自动化测试

开始正文:---------selenium是通过webdriver操作目标来实现ui自动化脚本。但一直有个问题很让人头疼,那就是各种随机不可预测的弹窗广告的出现,这种广告出现后需要点击一下x 或按钮等才能关掉,如果不关掉,则后续脚本无法正常运行,直接导致所有用例失败。

今天就来分享几个解决方案:

1. 有不少同学可能会在广告经常出现的页面脚本代码中,设置一个try,当该页面脚本突然无法运行下去的时候,就会认为是弹窗出现,然后在except中直接放上关闭弹窗的代码,然后关闭之后重跑该用例。其实这样做也是确实可以解决一下问题,如果毕竟有堵的成分且不够优雅,或者不是特别的靠谱。但不可否认这是最容易实现和想到的方案。

2. 设置子线程进行巡逻,主线程该跑脚本跑脚本。子线程负责进行环境维护,出现弹窗就关掉仅此而已。当然子线程可以继续扩展,比如发现弹窗后截图,简单判断一下记录一下再关掉。除此之外,子线程还可以帮主线程的脚本运行提供其他各种辅助作用,相当于你的游戏角色大c下副本,带了一个奶妈,肯定是事半功倍。

那么子线程进行巡逻,自然不能跟主线程共用一个driver对象,否则这个driver就变成了既要同时执行用例脚本,又要无时无刻的去盯着随机弹窗广告,那会极大拖慢执行速度。所以子线程就可以选择再启动一个driver对象的方式。那此刻问题又来了:新的driver能控制主线程driver的浏览器么?正常情况下是不能控制的。

除非按照下面思路进行设置:

1. 用命令启动浏览器,启动的时候要带上端口,只有命令启动,才可以添加端口参数。

2. 脚本开头创建启动项options,然后添加debugaddress,并设置为127.0.0.1:之前的端口,这样会让driver不新建浏览器,而是直接接着你命令启动的浏览器进行操作。

3.  用thread库创建一个线程,内容就是新建一个driver实例作为子线程,用来辅助,也就是里面用一个when True来在整脚本生命周期内 无时无刻的去检查弹窗广告,一旦检查到,才去瞬间关闭,亲测好用。

4. 你的主线该怎么运行就怎么运行,完全不用担心弹窗的事了,当然双线程,并且有个辅助线程一直在不断的监控,这样确实会更耗费系统资源。所以建议封装成对应的类,并且增加可控的创建和结束功能,在适当的情况下比如广告容易出现的用例执行时开启即可。结束的条件也可以多样化,比如点击几次广告后,该辅助线程就自动关闭。

最后奉上子线程控制同浏览器demo代码:

from selenium import webdriverimport timefrom selenium.webdriver.common.by import Byfrom selenium.webdriver.chrome.options import Optionsoptions = Options()options.add_experimental_option("debuggerAddress", "127.0.0.1:6789")  #手动命令启动浏览器需要设置端口未6789 :  --remote-debugging-port=6789import threading
def a():    driver = webdriver.Chrome(options=options)    while True:        try:            driver.find_element(By.ID,'弹窗关闭的id').click()            driver.switch_to.alert.accept()        except:            pass        time.sleep(1) # 扫描监控时间        # 退出驱动条件自行设计        driver.quit()
t1 = threading.Thread(target=a)t1.setDaemon(True) #守护线程,这样主脚本结束后 该线程也会结束。t1.start()
 # 此处你可以正常写你的主线程的 脚本了driver = webdriver.Chrome(options=options)driver.get('')...

今天的分享就到此结束了,喜欢的朋友给我点赞收藏支持一下哦

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得话可以直接拿走 【保证100%免费】

【实测】selenium脚本解决随机弹窗广告问题,自动化测试,selenium,python,测试工具,测试工程师,自动化测试

这些资料,对于从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……加入我的学习交流群一起学习交流把!!!!

【实测】selenium脚本解决随机弹窗广告问题,自动化测试,selenium,python,测试工具,测试工程师,自动化测试文章来源地址https://www.toymoban.com/news/detail-742999.html

到了这里,关于【实测】selenium脚本解决随机弹窗广告问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 干货整理,Selenium 自动化测试常见异常问题 +解决方法(详细)

    异常1:Stale Element Reference Exception 直译异常 Stale Element Reference Exception:陈旧元素引用异常 首先,啥情况下会出现这异常 简单来说就是,页面元素过期了,无法引用元素 出现这异常的常见原因 The element has been deleted entirely:该元素已被删除【更常见】 The element is no longer attac

    2024年02月08日
    浏览(51)
  • Selenium 自动化测试如何优雅的解决图片验证码问题

    说到自动化测试那一定避不开登陆注册页面,而大多数情况下这两个简单的页面都存在一个小困难就是验证码,以前我的解决办法都是在测试环境粗暴的写死一个万能验证码,或者给程序一个10秒钟的线程阻塞,手动输入验证码以跳过这个步骤。这样就可以不那么优雅的实现

    2024年02月14日
    浏览(49)
  • selenium自动化的时候网址重定向问题的解决思路

    因为我们系统是用企业微信扫码登录的,就输入网址 management-xxx.xxx.com 以后,url就会重定向到企业微信授权的url : https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?state=xxxredirect_uri=management-xxx.xxx.com ,直到获取auth_code之后登录成功,然后再跳回首页。 但是因为重定向导致domain变了

    2024年02月05日
    浏览(54)
  • linux中crontab编写自动化定时脚本无法正确运行(问题解决与汇总)附相关内容

    -问题描述 在Linux(RedHat)中想要执行一段自动化备份日志的命令 但是通过下面的命令 编辑了 crontab 没正确运行 0 0 * * * /path/to/save_journal_logs.sh 文件中的内容如下: save_journal_logs.sh 通过下面的命令编辑了脚本 crontab -e 发现脚本没有正确备份 问题排查 执行权限 切换成了 root (

    2024年01月16日
    浏览(56)
  • python selenium框架解决ip代理框不能自动化登录,解决pyautogui开不了多线程问题

    有时候我们使用python自动化框架的时候,打开一个网页的时候,它会出现出线这一种登录框,我们f12检查不了,用开发者工具强制检查里面没有任何属性. 那这时候我们就可以用到python第三方库:pyautogui PyAutoGUI:是一个Python库,可用于自动化GUI(图形用户界面)程序的任务。它可以让

    2024年02月07日
    浏览(69)
  • 解决python+selenium自动化,打开谷哥浏览器窗口么会自动关闭问题

    # 导包 from selenium import webdriver from selenium.webdriver.common.by import By # 实例化浏览器,且浏览器对象的初始化放在定义的方法函数外,以全局变量的形式使用 wd = webdriver.Chrome() # 已配置环境变量 def get(): #

    2024年02月14日
    浏览(56)
  • 【selenium】自动化测试中,元素无法点击定位等问题的解决:js的使用方法

    在自动化测试中经常会遇到使用selenium方法定位元素点击操作失败的情况,例如,我们想实现在浏览器输入http://www.baidu.com,进入百度首页后,鼠标悬停在“更多产品”上,点击“全部产品” 若不使用js的话,代码应该如下图所示: 我们执行代码后,发现会报错 我们该如何解

    2024年02月08日
    浏览(49)
  • selenium+python自动化测试 —— 解决无法启动IE浏览器及报错问题!

    前言:记录启动IE浏览器的报错及解决方法。 错误1: selenium.common.exceptions.WebDriverException: Message: \\\'IEDriverServer.exe\\\' executable needs to be in PATH. Please download from http://selenium-release.storage.googleapis.com/index.html and read up at https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver Exception ignored i

    2024年02月03日
    浏览(61)
  • Selenium如何用于编写自动化测试脚本?

    Selenium如何用于编写自动化测试脚本?它提供了许多测试工具和API,可以与浏览器交互,模拟用户操作,检查网页的各个方面。下面是一些步骤,可以帮助你编写Selenium自动化测试脚本。 1、安装Selenium库和浏览器驱动程序 首先,你需要安装Selenium库和浏览器驱动程序,例如C

    2024年02月09日
    浏览(42)
  • Selenium自动化脚本打包exe文件

    近期由于工作需要写了一个selenium自动化脚本,但是每次运行的时候都要打开Pycharm,因此本人直接使用Python第三方打包库PyInstaller将py文件打包成一个可执行的exe文件,在使用时无需安装Python也可以点击运行。 PyInstaller是一个使用较为简单便捷的打包套件,只需要几行命令即可

    2023年04月08日
    浏览(106)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包