zoukankan      html  css  js  c++  java
  • 关于Python+selenium 定位浏览器弹窗元素

    链接:https://www.jianshu.com/p/4c3330c1cdb5

    (1)div弹窗

    (2)新标签页弹窗

    (3)alert弹窗

    一,div弹窗

    div弹窗是浏览器中比较好定位的弹窗,定位的方法与普通的元素一样。不过这里会有一个坑,明明可以找到这个按钮,但是就是定位不到。这个就是因为当前有div弹窗弹出的时候,需要设置一下等待时间,等页面元素加载完毕,再去做其他操作。



    二,新标签页弹窗

    新标签页弹窗,则需要进行窗口的切换。此处第一个窗口打开百度首页,在打开一个新窗口打开京东首页,在两个窗口之间进行切换。切换到不同的窗口之后,就可以用常规的方法进行元素的定位。

    handles = driver.window_handles # 获取当前打开的所有窗口的句柄

    driver.switch_to.window(handles[N]) # 切换到其中一个窗口

    其中,获取的句柄下标从0开始,即第一个窗口为[0]、第二个窗口为[1],如此类推。使用switch_to.window方法切换到新标签页后就可以做其他操作了。

    三、alert弹窗

    在WebDriver中处理JS所生成的alert、confirm以及prompt十分简单,具体做法是使用switch_to.alert()方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法进行操作。

    1.text:返回alert/confirm/prompt中的文字信息。

    2.accept():接受现有警告框。

    3.dismiss():解散现有警告框。

    4.send_keys(keysToSend):发送文本至警告框。 keysToSend:将文本发送至警告框。

    如图所示,百度搜索设置弹出的窗口是不能通过前端工具对其进行定位的,这个时候就可以通过switch_to.alert()方法接受这个弹窗。


    selenium_弹出框的处理_TypeError: 'Alert' object is not callable

    问题描述:

        在使用selenium操作网页弹出框的时候,弹出框是alert类型,预想是点击弹出框的确定。在使用selenium中的switch_to.alert().accept()的方法报错

    报错如下:

    Traceback (most recent call last):
    File "F:/project/全国selenium_测试.py", line 59, in <module>
    huoqu_cookie1 = huoqu_cookie()
    File "F:/project/全国selenium_测试.py", line 50, in huoqu_cookie
    browser.switch_to.alert().accept()
    TypeError: 'Alert' object is not callable
    原因分析

        'Alert' object is not callable 的含义为Alert不能被函数调用,它不是一个函数。

    解决方案

    将alert后的括号去掉。

    正确代码:

    browser.switch_to.alert.accept()
    ————————————————
    版权声明:本文为CSDN博主「Urila」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/jss19940414/article/details/90268434

  • 相关阅读:
    Leetcode 1489找到最小生成树李关键边和伪关键边
    Leetcode 113 路径总和 II
    hdu 1223 还是畅通工程
    hdu 1087 Super Jumping! Jumping! Jumping!
    hdu 1008 Elevator
    hdu 1037 Keep on Truckin'
    湖工oj 1241 畅通工程
    湖工oj 1162 大武汉局域网
    hdu 2057 A + B Again
    poj 2236 Wireless Network
  • 原文地址:https://www.cnblogs.com/wenjing2019/p/12036833.html
Copyright © 2011-2022 走看看