• py+selenium 无法定位ShowModalDialog模态窗口【已解决】


    问题:无法定位弹出的模态窗口。

    前瞻

    模态窗口:关闭之前,无法操作其他窗口。

    但是selenium无法定位到这类窗口,百度说是目前selenium不支持处理模态窗口。

    目标:定位到窗口里面的元素,完成自动化测试。如图为目标窗口

    没办法,一定要过的坎。

    接下来开始骚操作一波~~

     既然是同个点击某个链接触发的窗口,那么就有这个思路: 获取这个链接→用新窗口的方式打开这个链接,绕过直接点击这个链接。

     

    业务:首先这个触发链接,是选择某条数据,点击查看手机号,故而弹出的模态窗口。

    所以,我先获取该数据的id,再加入该窗口触发进入的url,当然也可以写死直接赋值url,这样数据如果被删除了,或是被新建覆盖了,那就不好了,不灵活。最好还是取变量值,因为我对数据操作是默认列表第一条数据,即使是这条数据删除了,也会默认列表第一条数据进行操作,所以不直接写死。

    方法:

    1、获取该条数据的ID,由于业务上可以点击客户姓名进入查看信息页面,进而拿到url的id值,即为该条数据的ID。

    代码上,则是先进入查看信息页面,用driver.current_url获取当前url,然后再用urlparse进行url分解,取值。

    由于py3没有urlparse, 声明这句即可   from urllib import parse  ,然后调用parse里的parse_qs,如图。

     

     2. 获取完url,用+合并,然后再用execute_script执行js操作,打开一个新窗口。

     搞定!运行一下,这样就把原来的无法处理的模态窗口转化为普通的新窗口模式,继而通过切换窗口操作定位!!

     

     总结:可能其他人出现模态窗口的位置、业务等与我的例子不一样,我的例子只是给个思路,获取该窗口地址重新打开一个窗口!

    这样就可以绕过无法处理模态窗口的问题。

     如有错误,请指正,谢谢!

  • 相关阅读:
    去掉ASP.NET Development Server 中的虚拟路径
    实战 SQL Server 2008 数据库误删除数据的恢复
    人的一生,到底在追求什么?
    每日一记20211215
    CentOS系统配置本地yum源
    mysql修改和查看时区
    依赖报错问题
    没想到MarkText竟然是一款比Typora更简洁优雅的markdown编辑器,完全开源免费!
    免费javascript富文本编辑器 总有一款会适合你!
    90%的人都不知道网页文字被禁止如何复制,教你几招神奇技能就可以免费解决,一定要看完!
  • 原文地址:https://www.cnblogs.com/4wheel/p/9400394.html
Copyright © 2020-2023  润新知